From 216fcf2d73370dd03469481d3f65d74affd4f373 Mon Sep 17 00:00:00 2001 From: mdecimus Date: Fri, 15 Sep 2023 19:39:03 +0200 Subject: [PATCH] Journal support --- Cargo.lock | 12 ++++++++++++ crates/smtp/src/scripts/event_loop.rs | 2 +- crates/utils/Cargo.toml | 1 + crates/utils/src/lib.rs | 11 +++++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 72e89b4c..076541f4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5484,6 +5484,17 @@ dependencies = [ "valuable", ] +[[package]] +name = "tracing-journald" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba316a74e8fc3c3896a850dba2375928a9fa171b085ecddfc7c054d39970f3fd" +dependencies = [ + "libc", + "tracing-core", + "tracing-subscriber", +] + [[package]] name = "tracing-log" version = "0.1.3" @@ -5775,6 +5786,7 @@ dependencies = [ "tokio-rustls", "tracing", "tracing-appender", + "tracing-journald", "tracing-opentelemetry", "tracing-subscriber", ] diff --git a/crates/smtp/src/scripts/event_loop.rs b/crates/smtp/src/scripts/event_loop.rs index 49990f94..870f9c85 100644 --- a/crates/smtp/src/scripts/event_loop.rs +++ b/crates/smtp/src/scripts/event_loop.rs @@ -363,7 +363,7 @@ impl SMTP { assert_eq!(value, expected, "Variable {name:?} has unexpected value"); } else { panic!("Missing variable {name:?} with value {expected:?}\nExpected {:?}\nFound: {:?}", - expected_variables.keys().collect::>(), + expected_variables.keys().collect::>(), instance.global_variable_names().collect::>()); } } diff --git a/crates/utils/Cargo.toml b/crates/utils/Cargo.toml index 41223e27..bc3fefeb 100644 --- a/crates/utils/Cargo.toml +++ b/crates/utils/Cargo.toml @@ -25,6 +25,7 @@ ahash = { version = "0.8" } [target.'cfg(unix)'.dependencies] privdrop = "0.5.3" +tracing-journald = "0.3" [features] test_mode = [] diff --git a/crates/utils/src/lib.rs b/crates/utils/src/lib.rs index a24fe2c0..6bd8bc1c 100644 --- a/crates/utils/src/lib.rs +++ b/crates/utils/src/lib.rs @@ -179,6 +179,17 @@ pub fn enable_tracing(config: &Config, message: &str) -> config::Result { + tracing::subscriber::set_global_default( + tracing_subscriber::Registry::default() + .with(tracing_journald::layer().failed("Failed to configure journal")) + .with(env_filter), + ) + .failed("Failed to set subscriber"); + + Ok(None) + } _ => Ok(None), };