* [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