13个版本 (4个稳定版)
2.1.1 | 2023年11月15日 |
---|---|
1.0.0 | 2023年4月29日 |
0.7.0 | 2022年12月23日 |
0.5.1 | 2022年10月15日 |
0.3.0 | 2021年6月7日 |
#56 in 调试
12,943 每月下载量
用于 10 个crate(9个直接使用)
29KB
324 行
systemd-journal-logger
用于systemd日志的系统d日志记录器,纯Rust实现。
使用方法
$ cargo add systemd-journal-logger
然后在main
开始初始化记录器
use log::{info, warn, error, LevelFilter};
use systemd_journal_logger::JournalLog;
JournalLog::new().unwrap().install().unwrap();
log::set_max_level(LevelFilter::Info);
info!("hello log");
warn!("warning");
error!("oops");
您还可以为每个日志消息添加额外的字段,例如您的可执行文件版本
use log::{info, warn, error, LevelFilter};
use systemd_journal_logger::JournalLog;
JournalLog::new()
.unwrap()
.with_extra_fields(vec![("VERSION", env!("CARGO_PKG_VERSION"))])
.with_syslog_identifier("foo".to_string())
.install().unwrap();
log::set_max_level(LevelFilter::Info);
info!("this message has an extra VERSION field in the journal");
这些额外字段将出现在journalctl --output=verbose
的输出中或journalctl
的任何JSON输出格式中。
请参阅systemd_service.rs,了解在systemd服务中记录的简单示例,如果未通过systemd启动,则自动回退到不同的记录器。
相关项目
- rust-systemd 提供了一个基于C库
libsystemd
的 记录器实现。 - slog-journald 提供了一个基于C库
libsystemd
的slog记录器,用于systemd日志。 - tracing-journald 提供了一个用于systemd日志的跟踪后端,纯Rust实现。
这两个记录器主要使用与此实现相同的字段和优先级。
最小支持的Rust版本
此仓库中使用的MSRV仅为尽力而为,可能会在任何时候提升,包括补丁版本。
许可证
您可以选择MIT 或 Apache 2.0。
依赖项
~1.7–10MB
~107K SLoC