all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pbs-devel] [PATCH] log: fallback to stderr if syslog not available
@ 2024-09-10 13:03 Gabriel Goller
  2024-09-12  9:29 ` Fiona Ebner
  2024-09-16 13:12 ` [pbs-devel] applied: " Wolfgang Bumiller
  0 siblings, 2 replies; 5+ messages in thread
From: Gabriel Goller @ 2024-09-10 13:03 UTC (permalink / raw)
  To: pbs-devel

Don't panic when the syslog is not available - which happens commonly in
containers and sbuild environments (chroot and unshare) - instead
fallback to stderr.

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

Note: this fixes `make sbuild` for pve-storage.
Disclaimer: haven't quite figured out why tbh, I don't see where the
verify_api function calls proxmox-backup-api or proxmox-backup-proxy. 

 proxmox-log/src/lib.rs | 42 +++++++++++++++++++++++++++++++-----------
 1 file changed, 31 insertions(+), 11 deletions(-)

diff --git a/proxmox-log/src/lib.rs b/proxmox-log/src/lib.rs
index 0cf5cb7a50b2..27d0b8a23e91 100644
--- a/proxmox-log/src/lib.rs
+++ b/proxmox-log/src/lib.rs
@@ -50,8 +50,7 @@ pub fn init_logger(
     }
     let registry = tracing_subscriber::registry()
         .with(
-            tracing_journald::layer()
-                .expect("Unable to open syslog")
+            journald_or_stderr_layer()
                 .with_filter(filter_fn(|metadata| {
                     !LogContext::exists() || *metadata.level() >= Level::ERROR
                 }))
@@ -127,6 +126,35 @@ impl LogContext {
     }
 }
 
+fn journald_or_stderr_layer<S>() -> Box<dyn tracing_subscriber::Layer<S> + Send + Sync>
+where
+    S: tracing::Subscriber,
+    S: for<'a> tracing_subscriber::registry::LookupSpan<'a>,
+{
+    match tracing_journald::layer() {
+        Ok(layer) => layer.boxed(),
+        Err(err) => {
+            eprintln!("Unable to open syslog: {err:?}");
+            plain_stderr_layer().boxed()
+        }
+    }
+}
+
+fn plain_stderr_layer<S>() -> impl tracing_subscriber::Layer<S>
+where
+    S: tracing::Subscriber,
+    S: for<'a> tracing_subscriber::registry::LookupSpan<'a>,
+{
+    let format = tracing_subscriber::fmt::format()
+        .with_level(false)
+        .without_time()
+        .with_target(false)
+        .compact();
+    tracing_subscriber::fmt::layer()
+        .event_format(format)
+        .with_writer(std::io::stderr)
+}
+
 /// Initialize default logger for CLI binaries
 pub fn init_cli_logger(
     env_var_name: &str,
@@ -144,17 +172,9 @@ pub fn init_cli_logger(
         }
     }
 
-    let format = tracing_subscriber::fmt::format()
-        .with_level(false)
-        .without_time()
-        .with_target(false)
-        .compact();
-
     let registry = tracing_subscriber::registry()
         .with(
-            tracing_subscriber::fmt::layer()
-                .event_format(format)
-                .with_writer(std::io::stderr)
+            plain_stderr_layer()
                 .with_filter(filter_fn(|metadata| {
                     !LogContext::exists() || *metadata.level() >= Level::ERROR
                 }))
-- 
2.39.2



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


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

* Re: [pbs-devel] [PATCH] log: fallback to stderr if syslog not available
  2024-09-10 13:03 [pbs-devel] [PATCH] log: fallback to stderr if syslog not available Gabriel Goller
@ 2024-09-12  9:29 ` Fiona Ebner
  2024-09-12  9:38   ` Fabian Grünbichler
  2024-09-16 13:12 ` [pbs-devel] applied: " Wolfgang Bumiller
  1 sibling, 1 reply; 5+ messages in thread
From: Fiona Ebner @ 2024-09-12  9:29 UTC (permalink / raw)
  To: Proxmox Backup Server development discussion, Gabriel Goller

Am 10.09.24 um 15:03 schrieb Gabriel Goller:
> Don't panic when the syslog is not available - which happens commonly in
> containers and sbuild environments (chroot and unshare) - instead
> fallback to stderr.
> 
> Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
> ---
> 
> Note: this fixes `make sbuild` for pve-storage.
> Disclaimer: haven't quite figured out why tbh, I don't see where the
> verify_api function calls proxmox-backup-api or proxmox-backup-proxy. 
> 

It's also used by libpve-rs and I can confirm "injecting" (done using
sbuild options --starting-build-commands and --pre-build-commands) a
package of libpve-rs-perl that incorporates your proxmox-log change
makes building pve-storage and pve-container work again :)

Tested-by: Fiona Ebner <f.ebner@proxmox.com>


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


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

* Re: [pbs-devel] [PATCH] log: fallback to stderr if syslog not available
  2024-09-12  9:29 ` Fiona Ebner
@ 2024-09-12  9:38   ` Fabian Grünbichler
  2024-09-12  9:50     ` Fiona Ebner
  0 siblings, 1 reply; 5+ messages in thread
From: Fabian Grünbichler @ 2024-09-12  9:38 UTC (permalink / raw)
  To: Proxmox Backup Server development discussion, Fiona Ebner,
	Gabriel Goller

also got filed as https://bugzilla.proxmox.com/show_bug.cgi?id=5712, might be nice to fold that into the commit title when applied..

> Fiona Ebner <f.ebner@proxmox.com> hat am 12.09.2024 11:29 CEST geschrieben:  
> Am 10.09.24 um 15:03 schrieb Gabriel Goller:
> > Don't panic when the syslog is not available - which happens commonly in
> > containers and sbuild environments (chroot and unshare) - instead
> > fallback to stderr.
> > 
> > Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
> > ---
> > 
> > Note: this fixes `make sbuild` for pve-storage.
> > Disclaimer: haven't quite figured out why tbh, I don't see where the
> > verify_api function calls proxmox-backup-api or proxmox-backup-proxy. 
> > 
> 
> It's also used by libpve-rs and I can confirm "injecting" (done using
> sbuild options --starting-build-commands and --pre-build-commands) a
> package of libpve-rs-perl that incorporates your proxmox-log change
> makes building pve-storage and pve-container work again :)

just for the record or to save you some trouble the next time - injecting a changed package into the build env can simply be done via --extra-package (either pointed at the .deb file, or at a dir containing .deb files to be injected). --extra-repository also works, but requires exposing them as repository..
 
> Tested-by: Fiona Ebner <f.ebner@proxmox.com>


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


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

* Re: [pbs-devel] [PATCH] log: fallback to stderr if syslog not available
  2024-09-12  9:38   ` Fabian Grünbichler
@ 2024-09-12  9:50     ` Fiona Ebner
  0 siblings, 0 replies; 5+ messages in thread
From: Fiona Ebner @ 2024-09-12  9:50 UTC (permalink / raw)
  To: Fabian Grünbichler,
	Proxmox Backup Server development discussion, Gabriel Goller

Am 12.09.24 um 11:38 schrieb Fabian Grünbichler:
> 
> just for the record or to save you some trouble the next time - injecting a changed package into the build env can simply be done via --extra-package (either pointed at the .deb file, or at a dir containing .deb files to be injected). --extra-repository also works, but requires exposing them as repository..
>  

Thank you for the pointer! But it seems like the --extra-package needs
to be a newer version to win. It didn't work for me before bumping the
version to something higher than in our repository.


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

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

* [pbs-devel] applied: [PATCH] log: fallback to stderr if syslog not available
  2024-09-10 13:03 [pbs-devel] [PATCH] log: fallback to stderr if syslog not available Gabriel Goller
  2024-09-12  9:29 ` Fiona Ebner
@ 2024-09-16 13:12 ` Wolfgang Bumiller
  1 sibling, 0 replies; 5+ messages in thread
From: Wolfgang Bumiller @ 2024-09-16 13:12 UTC (permalink / raw)
  To: Gabriel Goller; +Cc: pbs-devel

applied, thanks


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


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

end of thread, other threads:[~2024-09-16 13:12 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-09-10 13:03 [pbs-devel] [PATCH] log: fallback to stderr if syslog not available Gabriel Goller
2024-09-12  9:29 ` Fiona Ebner
2024-09-12  9:38   ` Fabian Grünbichler
2024-09-12  9:50     ` Fiona Ebner
2024-09-16 13:12 ` [pbs-devel] applied: " Wolfgang Bumiller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal