#systemd #logging #journal #log-messages

systemd-journal-logger

用于日志外观的系统d日志记录器

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 调试

Download history 1968/week @ 2024-04-23 2296/week @ 2024-04-30 2275/week @ 2024-05-07 2627/week @ 2024-05-14 2844/week @ 2024-05-21 2730/week @ 2024-05-28 3751/week @ 2024-06-04 3489/week @ 2024-06-11 3229/week @ 2024-06-18 2784/week @ 2024-06-25 3050/week @ 2024-07-02 3076/week @ 2024-07-09 3113/week @ 2024-07-16 3602/week @ 2024-07-23 3095/week @ 2024-07-30 2569/week @ 2024-08-06

12,943 每月下载量
用于 10 个crate(9个直接使用)

MIT/Apache

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版本

此仓库中使用的MSRV仅为尽力而为,可能会在任何时候提升,包括补丁版本。

许可证

您可以选择MITApache 2.0

依赖项

~1.7–10MB
~107K SLoC