public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH proxmox 1/2] notify: smtp: add missing 'tracing' namespace prefix
@ 2024-12-06 10:10 Lukas Wagner
  2024-12-06 10:10 ` [pve-devel] [PATCH proxmox-mail-forward 2/2] switch to proxmox-log Lukas Wagner
  2024-12-06 10:20 ` [pve-devel] [PATCH proxmox 1/2] notify: smtp: add missing 'tracing' namespace prefix Gabriel Goller
  0 siblings, 2 replies; 5+ messages in thread
From: Lukas Wagner @ 2024-12-06 10:10 UTC (permalink / raw)
  To: pve-devel

This section of code is only compiled when the 'mail-forwarder' feature
is enabled, which might have been the reason why this was missed when the
other places where log messages are produced were migrated to 'tracing'.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
---
 proxmox-notify/src/endpoints/smtp.rs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/proxmox-notify/src/endpoints/smtp.rs b/proxmox-notify/src/endpoints/smtp.rs
index 6bb2d2d0..86911f9b 100644
--- a/proxmox-notify/src/endpoints/smtp.rs
+++ b/proxmox-notify/src/endpoints/smtp.rs
@@ -336,7 +336,7 @@ impl Endpoint for SmtpEndpoint {
                                 let header = HeaderValue::new(name, value);
                                 message.headers_mut().insert_raw(header);
                             }
-                            Err(e) => error!("could not set header: {e}"),
+                            Err(e) => tracing::error!("could not set header: {e}"),
                         }
                     }
                 }
-- 
2.39.5



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [pve-devel] [PATCH proxmox-mail-forward 2/2] switch to proxmox-log
  2024-12-06 10:10 [pve-devel] [PATCH proxmox 1/2] notify: smtp: add missing 'tracing' namespace prefix Lukas Wagner
@ 2024-12-06 10:10 ` Lukas Wagner
  2024-12-06 10:40   ` Gabriel Goller
  2024-12-06 10:20 ` [pve-devel] [PATCH proxmox 1/2] notify: smtp: add missing 'tracing' namespace prefix Gabriel Goller
  1 sibling, 1 reply; 5+ messages in thread
From: Lukas Wagner @ 2024-12-06 10:10 UTC (permalink / raw)
  To: pve-devel

The proxmox-notify crate now uses tracing for logging,
hence we have to switch to proxmox-log (which configures the appropriate
layers/subscribers for tracing).

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
---
 Cargo.toml  |  5 ++---
 src/main.rs | 16 +++++++---------
 2 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index 0f4e3b0..9dc081b 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"
 proxmox-notify = {version = "0.5", features = ["mail-forwarder", "pve-context", "pbs-context"] }
+proxmox-sys = "0.6"
diff --git a/src/main.rs b/src/main.rs
index 4662ffa..c0ea561 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -23,6 +23,8 @@ use std::path::Path;
 
 use anyhow::Error;
 
+use proxmox_log::error;
+use proxmox_log::LevelFilter;
 use proxmox_notify::context::pbs::PBS_CONTEXT;
 use proxmox_notify::context::pve::PVE_CONTEXT;
 use proxmox_notify::Config;
@@ -42,7 +44,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 +114,7 @@ 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) = proxmox_log::init_logger("PROXMOX_LOG", LevelFilter::INFO) {
         eprintln!("unable to initialize syslog: {err}");
     }
 
@@ -129,19 +127,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


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [pve-devel] [PATCH proxmox 1/2] notify: smtp: add missing 'tracing' namespace prefix
  2024-12-06 10:10 [pve-devel] [PATCH proxmox 1/2] notify: smtp: add missing 'tracing' namespace prefix Lukas Wagner
  2024-12-06 10:10 ` [pve-devel] [PATCH proxmox-mail-forward 2/2] switch to proxmox-log Lukas Wagner
@ 2024-12-06 10:20 ` Gabriel Goller
  1 sibling, 0 replies; 5+ messages in thread
From: Gabriel Goller @ 2024-12-06 10:20 UTC (permalink / raw)
  To: Lukas Wagner; +Cc: pve-devel

On 06.12.2024 11:10, Lukas Wagner wrote:
>This section of code is only compiled when the 'mail-forwarder' feature
>is enabled, which might have been the reason why this was missed when the
>other places where log messages are produced were migrated to 'tracing'.

Oh that's why I didn't get an error when compiling.
Anyway consider:

Reviewed-by: Gabriel Goller <g.goller@proxmox.com>

>
>Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
>---
> proxmox-notify/src/endpoints/smtp.rs | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/proxmox-notify/src/endpoints/smtp.rs b/proxmox-notify/src/endpoints/smtp.rs
>index 6bb2d2d0..86911f9b 100644
>--- a/proxmox-notify/src/endpoints/smtp.rs
>+++ b/proxmox-notify/src/endpoints/smtp.rs
>@@ -336,7 +336,7 @@ impl Endpoint for SmtpEndpoint {
>                                 let header = HeaderValue::new(name, value);
>                                 message.headers_mut().insert_raw(header);
>                             }
>-                            Err(e) => error!("could not set header: {e}"),
>+                            Err(e) => tracing::error!("could not set header: {e}"),
>                         }
>                     }
>                 }
>-- 
>2.39.5
>


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [pve-devel] [PATCH proxmox-mail-forward 2/2] switch to proxmox-log
  2024-12-06 10:10 ` [pve-devel] [PATCH proxmox-mail-forward 2/2] switch to proxmox-log Lukas Wagner
@ 2024-12-06 10:40   ` Gabriel Goller
  2024-12-06 12:07     ` Lukas Wagner
  0 siblings, 1 reply; 5+ messages in thread
From: Gabriel Goller @ 2024-12-06 10:40 UTC (permalink / raw)
  To: Lukas Wagner; +Cc: pve-devel

> fn main() {
>-    if let Err(err) = syslog::init(
>-        syslog::Facility::LOG_DAEMON,
>-        log::LevelFilter::Info,
>-        Some("proxmox-mail-forward"),
>-    ) {
>+    if let Err(err) = proxmox_log::init_logger("PROXMOX_LOG", LevelFilter::INFO) {
>         eprintln!("unable to initialize syslog: {err}");
>     }
>

Haven't looked at this crate yet, so I don't know where it's all used,
but IMO the new `init_perlmod_logger` would be better? Because the
`init_logger` function will always print to journald and check if a
pbs task exists (which will never happen here afaiu).
We can also add another simpler subscriber which will only log to
journald (I can also do that, just let me know).

Btw now I release how stupid these function names are, I should rename
them in the future eliding the `perlmod`, `cli` names. Something like
`init_journald_and_tasks` and `init_stderr_and_journald`.


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [pve-devel] [PATCH proxmox-mail-forward 2/2] switch to proxmox-log
  2024-12-06 10:40   ` Gabriel Goller
@ 2024-12-06 12:07     ` Lukas Wagner
  0 siblings, 0 replies; 5+ messages in thread
From: Lukas Wagner @ 2024-12-06 12:07 UTC (permalink / raw)
  To: Gabriel Goller; +Cc: pve-devel



On  2024-12-06 11:40, Gabriel Goller wrote:
>> fn main() {
>> -    if let Err(err) = syslog::init(
>> -        syslog::Facility::LOG_DAEMON,
>> -        log::LevelFilter::Info,
>> -        Some("proxmox-mail-forward"),
>> -    ) {
>> +    if let Err(err) = proxmox_log::init_logger("PROXMOX_LOG", LevelFilter::INFO) {
>>         eprintln!("unable to initialize syslog: {err}");
>>     }
>>
> 
> Haven't looked at this crate yet, so I don't know where it's all used,
> but IMO the new `init_perlmod_logger` would be better? Because the
> `init_logger` function will always print to journald and check if a
> pbs task exists (which will never happen here afaiu).
> We can also add another simpler subscriber which will only log to
> journald (I can also do that, just let me know).

For context, this crate produces the 'proxmox-mail-forward' helper. 
This binary is invoked by the local Postfix daemon in case an email is sent to the
local root user. The executable receives the mail via stdin and feeds it into our
notification stack.

So in this case we only really need need to be logging to journald. I see no harm
in writing logs to stderr as well though, so I think we don't necessarily need to
add another subscriber. As far as I know, Postfix just redirects the output to /dev/null.
> 
> Btw now I release how stupid these function names are, I should rename
> them in the future eliding the `perlmod`, `cli` names. Something like
> `init_journald_and_tasks` and `init_stderr_and_journald`.

That would indeed be a bit more clear :D If you do that now, at least for the perlmod
function, I would rebase this commit onto yours.

Thanks!

-- 
- Lukas



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-12-06 12:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-12-06 10:10 [pve-devel] [PATCH proxmox 1/2] notify: smtp: add missing 'tracing' namespace prefix Lukas Wagner
2024-12-06 10:10 ` [pve-devel] [PATCH proxmox-mail-forward 2/2] switch to proxmox-log Lukas Wagner
2024-12-06 10:40   ` Gabriel Goller
2024-12-06 12:07     ` Lukas Wagner
2024-12-06 10:20 ` [pve-devel] [PATCH proxmox 1/2] notify: smtp: add missing 'tracing' namespace prefix Gabriel Goller

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