From: Christian Ebner <c.ebner@proxmox.com>
To: Proxmox Backup Server development discussion
<pbs-devel@lists.proxmox.com>,
Gabriel Goller <g.goller@proxmox.com>
Subject: Re: [pbs-devel] [PATCH proxmox-backup] log: retrieve `ReaderEnvironment` debug flag from tracing
Date: Tue, 16 Jul 2024 10:21:38 +0200 [thread overview]
Message-ID: <f166e0f4-ae95-415e-8bf7-c150473f6d35@proxmox.com> (raw)
In-Reply-To: <20240715151301.550787-1-g.goller@proxmox.com>
one comment inline
On 7/15/24 17:13, Gabriel Goller wrote:
> Don't hardcode the debug flag but retrieve the currently enabled level
> using tracing. This will change the default log-behavior and disable
> some logs that have been printed previously. F.e.: the "protocol upgrade
> done" message is not visible anymore per default because it is printed
> with debug.
>
> Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
> ---
>
> Note that this still keeps the behavior of the client controlling the
> log-level of the server, except if the server has a minimum log level of
> warn.
>
> src/api2/backup/environment.rs | 11 ++++++++---
> src/api2/reader/environment.rs | 2 +-
> src/server/pull.rs | 11 +++++++++--
> 3 files changed, 18 insertions(+), 6 deletions(-)
>
> diff --git a/src/api2/backup/environment.rs b/src/api2/backup/environment.rs
> index 51f4a15b3c95..5bd508d00753 100644
> --- a/src/api2/backup/environment.rs
> +++ b/src/api2/backup/environment.rs
> @@ -2,6 +2,7 @@ use anyhow::{bail, format_err, Error};
> use nix::dir::Dir;
> use std::collections::HashMap;
> use std::sync::{Arc, Mutex};
> +use tracing::info;
>
> use ::serde::Serialize;
> use serde_json::{json, Value};
> @@ -141,7 +142,7 @@ impl BackupEnvironment {
> auth_id,
> worker,
> datastore,
> - debug: false,
> + debug: tracing::enabled!(tracing::Level::DEBUG),
> formatter: JSON_FORMATTER,
> backup_dir,
> last_backup: None,
> @@ -687,12 +688,16 @@ impl BackupEnvironment {
> }
>
> pub fn log<S: AsRef<str>>(&self, msg: S) {
> - self.worker.log_message(msg);
> + info!("{}", msg.as_ref());
> }
>
> pub fn debug<S: AsRef<str>>(&self, msg: S) {
> if self.debug {
> - self.worker.log_message(msg);
> + // This is kinda weird, we would like to use debug! here and automatically filter it,
> + // but self.debug is set from the client-side and the logs are printed on client and
> + // server side. This means that if the client sets the log level to debug, both server
> + // and client need to have 'debug' logs printed.
> + info!("{}", msg.as_ref());
This is indeed a bit odd: The fact that the client can set the `debug`
flag when upgrading to the backup protocol, but cannot and should not
control the filter level makes this a bit strange.
So I would suggest to rename this method to something like
`client_debug` (or something better fitting?) an instead of calling the
`info` macro directly, call `self.log` instead if `self.debug` is set.
By this, it should at least be a bit more clear what is going on and one
cannot accidentally loose these debug messages as the same codepath is
then used for generating the event.
> }
> }
>
> diff --git a/src/api2/reader/environment.rs b/src/api2/reader/environment.rs
> index 37039da2f573..25593bd0eeba 100644
> --- a/src/api2/reader/environment.rs
> +++ b/src/api2/reader/environment.rs
> @@ -39,7 +39,7 @@ impl ReaderEnvironment {
> auth_id,
> worker,
> datastore,
> - debug: false,
> + debug: tracing::enabled!(tracing::Level::DEBUG),
> formatter: JSON_FORMATTER,
> backup_dir,
> allowed_chunks: Arc::new(RwLock::new(HashSet::new())),
> diff --git a/src/server/pull.rs b/src/server/pull.rs
> index 1ff9b92ab177..ff4b3a4168fa 100644
> --- a/src/server/pull.rs
> +++ b/src/server/pull.rs
> @@ -278,8 +278,15 @@ impl PullSource for RemoteSource {
> ns: &BackupNamespace,
> dir: &BackupDir,
> ) -> Result<Arc<dyn PullReader>, Error> {
> - let backup_reader =
> - BackupReader::start(&self.client, None, self.repo.store(), ns, dir, true).await?;
> + let backup_reader = BackupReader::start(
> + &self.client,
> + None,
> + self.repo.store(),
> + ns,
> + dir,
> + tracing::enabled!(tracing::Level::DEBUG),
> + )
> + .await?;
> Ok(Arc::new(RemoteReader {
> backup_reader,
> dir: dir.clone(),
_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
next prev parent reply other threads:[~2024-07-16 8:21 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-15 15:13 Gabriel Goller
2024-07-16 8:21 ` Christian Ebner [this message]
2024-07-16 8:38 ` Christian Ebner
2024-07-16 9:07 ` Gabriel Goller
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=f166e0f4-ae95-415e-8bf7-c150473f6d35@proxmox.com \
--to=c.ebner@proxmox.com \
--cc=g.goller@proxmox.com \
--cc=pbs-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 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.