[pbs-devel] [PATCH proxmox 1/1] log: set up custom priority mapping for tracing-journald

Lukas Wagner l.wagner at proxmox.com
Wed Apr 9 15:54:12 CEST 2025


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 <t.lamprecht at proxmox.com>
Signed-off-by: Lukas Wagner <l.wagner at proxmox.com>
---
 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 268b39eb..bb7f6c07 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 <!nocheck>,
  librust-tokio-1+default-dev (>= 1.6-~~) <!nocheck>,
  librust-tokio-1+rt-multi-thread-dev (>= 1.6-~~) <!nocheck>,
  librust-tracing-0.1+default-dev <!nocheck>,
- librust-tracing-journald-0.3+default-dev <!nocheck>,
+ librust-tracing-journald-0.3+default-dev (>= 0.3.1-~~) <!nocheck>,
  librust-tracing-log-0.2+std-dev <!nocheck>,
  librust-tracing-subscriber-0.3+default-dev (>= 0.3.16-~~) <!nocheck>
 Maintainer: Proxmox Support Team <support at proxmox.com>
@@ -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()
-- 
2.39.5





More information about the pbs-devel mailing list