Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
logger: Respect config file log level
✓ CI success Daniel Norman committed 3 days ago
commit 5eae519b5464ec9ae664df96140d61d5fc426fc3
parent 998f527bd4d971525137458adbb6e44efa4ad52c
1 passed (1 total) View logs
4 files changed +37 -25
modified crates/radicle-cli/src/main.rs
@@ -138,7 +138,7 @@ fn main() {
    }

    if let Some(lvl) = radicle::logger::env_level() {
-
        let logger = Box::new(radicle::logger::Logger::new(lvl));
+
        let logger = Box::new(radicle::logger::Logger::new());
        log::set_boxed_logger(logger).expect("no other logger should have been set already");
        log::set_max_level(lvl.to_level_filter());
    }
modified crates/radicle-node/src/main.rs
@@ -376,7 +376,13 @@ fn initialize_logging(options: &LogOptions) -> Result<(), Box<dyn std::error::Er
                    LogFormat::Json => json::new_writer(io::stdout()),
                };

-
                Box::new(Builder::new().with_default_writer(writer).build())
+
                // Disable the structured logger's internal filter so
+
                // log::set_max_level is the sole control point.
+
                Box::new(
+
                    Builder::with_level("trace")
+
                        .with_default_writer(writer)
+
                        .build(),
+
                )
            }
            #[cfg(all(feature = "systemd", target_os = "linux"))]
            Logger::Systemd => {
@@ -398,7 +404,7 @@ fn initialize_logging(options: &LogOptions) -> Result<(), Box<dyn std::error::Er
                const SYSLOG_IDENTIFIER: &str = "radicle-node";
                logger::<&str, &str, _>(SYSLOG_IDENTIFIER.to_string(), []).map_err(Box::new)?
            }
-
            Logger::Radicle => Box::new(radicle::logger::Logger::new(level)),
+
            Logger::Radicle => Box::new(radicle::logger::Logger::new()),
        }
    };

modified crates/radicle-remote-helper/src/main.rs
@@ -52,7 +52,7 @@ fn main() {
    let mut args = env::args();

    if let Some(lvl) = radicle::logger::env_level() {
-
        let logger = radicle::logger::StderrLogger::new(lvl);
+
        let logger = radicle::logger::StderrLogger::new();
        log::set_boxed_logger(Box::new(logger))
            .expect("no other logger should have been set already");
        log::set_max_level(lvl.to_level_filter());
modified crates/radicle/src/logger.rs
@@ -13,19 +13,23 @@ use colored::*;
use log::{Level, Log, Metadata, Record};

/// A logger that logs to `stdout`.
-
pub struct Logger {
-
    level: Level,
-
}
+
pub struct Logger;

impl Logger {
-
    pub fn new(level: Level) -> Self {
-
        Self { level }
+
    pub fn new() -> Self {
+
        Self
+
    }
+
}
+

+
impl Default for Logger {
+
    fn default() -> Self {
+
        Self::new()
    }
}

impl Log for Logger {
    fn enabled(&self, metadata: &Metadata) -> bool {
-
        metadata.level() <= self.level
+
        metadata.level() <= log::max_level()
    }

    fn log(&self, record: &Record) {
@@ -60,31 +64,33 @@ impl Log for Logger {
}

/// A logger that logs to `stderr`.
-
pub struct StderrLogger {
-
    level: Level,
-
}
+
pub struct StderrLogger;

impl StderrLogger {
-
    pub fn new(level: Level) -> Self {
-
        Self { level }
+
    pub fn new() -> Self {
+
        Self
+
    }
+
}
+

+
impl Default for StderrLogger {
+
    fn default() -> Self {
+
        Self::new()
    }
}

impl Log for StderrLogger {
    fn enabled(&self, metadata: &Metadata) -> bool {
-
        metadata.level() <= self.level
+
        metadata.level() <= log::max_level()
    }

    fn log(&self, record: &Record) {
-
        if self.enabled(record.metadata()) {
-
            let message = format!(
-
                "{:<5} {:<8} {}",
-
                record.level(),
-
                record.target(),
-
                record.args()
-
            );
-
            writeln!(&mut io::stderr(), "{message}").expect("write shouldn't fail");
-
        }
+
        let message = format!(
+
            "{:<5} {:<8} {}",
+
            record.level(),
+
            record.target(),
+
            record.args()
+
        );
+
        writeln!(&mut io::stderr(), "{message}").expect("write shouldn't fail");
    }

    fn flush(&self) {}