public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Lukas Wagner <l.wagner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH promxox-mail-forward v2] fix logging by switching to proxmox-log
Date: Fri, 13 Jun 2025 09:54:43 +0200	[thread overview]
Message-ID: <20250613075443.63136-1-l.wagner@proxmox.com> (raw)

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.wagner@proxmox.com>
Reviewed-by: Gabriel Goller <g.goller@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


             reply	other threads:[~2025-06-13  7:55 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-13  7:54 Lukas Wagner [this message]
2025-06-16 19:28 ` Thomas Lamprecht
2025-06-17  7:04   ` Lukas Wagner
2025-06-17  9:19 ` [pve-devel] applied: " Thomas Lamprecht

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250613075443.63136-1-l.wagner@proxmox.com \
    --to=l.wagner@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal