From b01036f5cd029f9ed3722b11713dfe2f366bcf58 Mon Sep 17 00:00:00 2001 From: Lukas Wagner Date: Wed, 9 Apr 2025 15:54:12 +0200 Subject: [PATCH] log: set up custom priority mapping for tracing-journald By default, the mapping between tracing/log error levels to syslog priorities is as follows: error! -> Error warn! -> Warning info! -> Notice debug! -> Informational trace! -> Debug Before using tracing-journald, we used `syslog` to write log messages to the journal. That one has the following mapping: error! -> Error warn! -> Warning info! -> Informational debug! -> Debug trace! -> Debug The changed mapping of info! log messages led to many messages being written with the Notice priority, which are formatted bold when running journalctl to view log messages. This commit changes the mapping so that it is the same as with the syslog crate. Support for custom priority mappings was only introduced in tracing-journald 0.3.1, so we have to bump the dependency to that version. Reported-by: Thomas Lamprecht Signed-off-by: Lukas Wagner --- Cargo.toml | 2 +- proxmox-log/debian/control | 4 ++-- proxmox-log/src/lib.rs | 11 ++++++++++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 6a88584c..13a6affc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -111,7 +111,7 @@ tokio-openssl = "0.6.1" tokio-stream = "0.1.0" tower-service = "0.3.0" tracing = "0.1" -tracing-journald = "0.3.0" +tracing-journald = "0.3.1" tracing-log = { version = "0.2", default-features = false } tracing-subscriber = "0.3.16" url = "2.2" diff --git a/proxmox-log/debian/control b/proxmox-log/debian/control index 4ad3f0f7..7e27b922 100644 --- a/proxmox-log/debian/control +++ b/proxmox-log/debian/control @@ -13,7 +13,7 @@ Build-Depends-Arch: cargo:native , librust-tokio-1+default-dev (>= 1.6-~~) , librust-tokio-1+rt-multi-thread-dev (>= 1.6-~~) , librust-tracing-0.1+default-dev , - librust-tracing-journald-0.3+default-dev , + librust-tracing-journald-0.3+default-dev (>= 0.3.1-~~) , librust-tracing-log-0.2+std-dev , librust-tracing-subscriber-0.3+default-dev (>= 0.3.16-~~) Maintainer: Proxmox Support Team @@ -36,7 +36,7 @@ Depends: librust-tokio-1+default-dev (>= 1.6-~~), librust-tokio-1+rt-multi-thread-dev (>= 1.6-~~), librust-tracing-0.1+default-dev, - librust-tracing-journald-0.3+default-dev, + librust-tracing-journald-0.3+default-dev (>= 0.3.1-~~), librust-tracing-log-0.2+std-dev, librust-tracing-subscriber-0.3+default-dev (>= 0.3.16-~~) Provides: diff --git a/proxmox-log/src/lib.rs b/proxmox-log/src/lib.rs index 7f041927..3a529cca 100644 --- a/proxmox-log/src/lib.rs +++ b/proxmox-log/src/lib.rs @@ -6,6 +6,7 @@ use std::future::Future; use std::sync::{Arc, Mutex}; use tokio::task::futures::TaskLocalFuture; +use tracing_journald::{Priority, PriorityMappings}; use tracing_subscriber::prelude::*; mod file_logger; @@ -115,7 +116,15 @@ where S: for<'a> tracing_subscriber::registry::LookupSpan<'a>, { match tracing_journald::layer() { - Ok(layer) => layer.boxed(), + Ok(layer) => layer + .with_priority_mappings(PriorityMappings { + error: Priority::Error, + warn: Priority::Warning, + info: Priority::Informational, + debug: Priority::Debug, + trace: Priority::Debug, + }) + .boxed(), Err(err) => { eprintln!("Unable to open syslog: {err:?}"); plain_stderr_layer().boxed()