The proxmox-notify crate now uses tracing for logging, hence we have to set up some tracing logging infrastructure if we want to see any messages in the journal. Therefore we switch from the syslog crate to proxmox-log, which configures the appropriate layers/subscribers for tracing.
Signed-off-by: Lukas Wagner <l.wag...@proxmox.com> Reviewed-by: Gabriel Goller <g.gol...@proxmox.com> --- Changes since v1: - Use :# to print errors with more context Cargo.toml | 5 ++--- debian/control | 4 ++-- src/main.rs | 20 +++++++++++--------- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 8bbd89e..f23fc61 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,9 +15,8 @@ exclude = [ "debian" ] [dependencies] anyhow = "1.0" -log = "0.4.17" nix = "0.26" -syslog = "6.0" -proxmox-sys = "0.6" +proxmox-log = "0.2.8" proxmox-notify = {version = "0.5.4", features = ["mail-forwarder", "pve-context", "pbs-context"] } +proxmox-sys = "0.6" diff --git a/debian/control b/debian/control index 48bd241..4ed6308 100644 --- a/debian/control +++ b/debian/control @@ -3,15 +3,15 @@ Section: rust Priority: optional Build-Depends: cargo:native, debhelper-compat (= 13), + dh-cargo (>= 25), librust-anyhow-1+default-dev, - librust-log-0.4+default-dev (>= 0.4.17-~~), librust-nix-0.26+default-dev, + librust-proxmox-log-0.2+default-dev (>= 0.2.8), librust-proxmox-notify-0.5+default-dev (>= 0.5.4), librust-proxmox-notify-0.5+mail-forwarder-dev, librust-proxmox-notify-0.5+pbs-context-dev, librust-proxmox-notify-0.5+pve-context-dev, librust-proxmox-sys-0.6+default-dev, - librust-syslog-6+default-dev, libstd-rust-dev, patchelf, rustc:native, diff --git a/src/main.rs b/src/main.rs index 795b0f2..a95d75c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -23,6 +23,9 @@ use std::path::Path; use anyhow::Error; +use proxmox_log::LevelFilter; +use proxmox_log::Logger; +use proxmox_log::error; use proxmox_notify::Config; use proxmox_notify::context::pbs::PBS_CONTEXT; use proxmox_notify::context::pve::PVE_CONTEXT; @@ -42,7 +45,7 @@ fn attempt_file_read<P: AsRef<Path>>(path: P) -> Option<String> { match fs::file_read_optional_string(path.as_ref()) { Ok(contents) => contents, Err(err) => { - log::error!("unable to read {path:?}: {err}", path = path.as_ref()); + error!("unable to read {path:?}: {err:#}", path = path.as_ref()); None } } @@ -112,11 +115,10 @@ fn forward_for_pbs(mail: &[u8], has_pve: bool) -> Result<(), Error> { } fn main() { - if let Err(err) = syslog::init( - syslog::Facility::LOG_DAEMON, - log::LevelFilter::Info, - Some("proxmox-mail-forward"), - ) { + if let Err(err) = Logger::from_env("PROXMOX_LOG", LevelFilter::INFO) + .journald() + .init() + { eprintln!("unable to initialize syslog: {err}"); } @@ -129,19 +131,19 @@ fn main() { if Path::new(PVE_CFG_PATH).exists() { has_pve = true; if let Err(err) = forward_for_pve(&mail) { - log::error!("could not forward mail for Proxmox VE: {err}"); + error!("could not forward mail for Proxmox VE: {err:#}"); } } // Assume a PBS installation if /etc/proxmox-backup exists if Path::new(PBS_CFG_PATH).exists() { if let Err(err) = forward_for_pbs(&mail, has_pve) { - log::error!("could not forward mail for Proxmox Backup Server: {err}"); + error!("could not forward mail for Proxmox Backup Server: {err:#}"); } } } Err(err) => { - log::error!("could not read mail from STDIN: {err}") + error!("could not read mail from STDIN: {err:#}") } } } -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel