systemd-journal-logger
A pure Rust log logger for the systemd journal.
Usage
$ cargo add systemd-journal-logger
Then initialize the logger at the start of main
:
use ;
use JournalLog;
new.unwrap.install.unwrap;
set_max_level;
info!;
warn!;
error!;
You can also add additional fields to every log message, such as the version of your executable:
use ;
use JournalLog;
new
.unwrap
.with_extra_fields
.with_syslog_identifier
.install.unwrap;
set_max_level;
info!;
These extra fields appear in the output of journalctl --output=verbose
or in any of the JSON output formats of journalctl
.
See systemd_service.rs for a simple example of logging in a systemd service which automatically falls back to a different logger if not started through systemd.
Related projects
- rust-systemd provides a logger implementation based on the
libsystemd
C library. - slog-journald provides an slog logger for the systemd journal, also based on the
libsystemd
C library. - tracing-journald provides a tracing backend for the systemd journal, in a pure Rust implementation.
Both loggers use mostly the same fields and priorities as this implementation.
License
Either MIT or Apache 2.0, at your option.