diff --git a/README.md b/README.md index 9fd929c..b427576 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,10 @@ log: level: info # Enable the metrics. enable_metrics: true + # Enable thread ID in logs. + enable_thread_id: true + # Log on stderr. + stderr: false # The keys and domains configuration keys: diff --git a/config.yml b/config.yml index b4caa41..5b6c3f7 100644 --- a/config.yml +++ b/config.yml @@ -7,6 +7,10 @@ log: level: debug # Enable the metrics. enable_metrics: true + # Enable thread ID in logs. + enable_thread_id: true + # Log on stderr. + stderr: false keys: key1: diff --git a/src/config.rs b/src/config.rs index 9ec8af1..19f1215 100644 --- a/src/config.rs +++ b/src/config.rs @@ -37,6 +37,8 @@ pub struct LogConfig { #[serde(deserialize_with = "de_level_filter")] pub level: log::LevelFilter, pub enable_metrics: bool, + pub enable_thread_id: bool, + pub stderr: bool, } fn de_level_filter<'de, D>(deserializer: D) -> std::result::Result diff --git a/src/logger.rs b/src/logger.rs index 9cccdf9..7a4b687 100644 --- a/src/logger.rs +++ b/src/logger.rs @@ -43,6 +43,16 @@ impl Logger { self } + pub fn with_thread(mut self, threads: bool) -> Logger { + self.threads = threads; + self + } + + pub fn with_stderr(mut self, stderr: bool) -> Logger { + self.stderr = stderr; + self + } + /// Configure the logger pub fn max_level(&self) -> LevelFilter { let max_level = self @@ -99,17 +109,7 @@ impl Log for Logger { if self.threads { let thread = std::thread::current(); - format!("@{}", { - #[cfg(feature = "nightly")] - { - thread.name().unwrap_or(&thread.id().as_u64().to_string()) - } - - #[cfg(not(feature = "nightly"))] - { - thread.name().unwrap_or("?") - } - }) + format!("@{}", { thread.name().unwrap_or("?") }) } else { "".to_string() } diff --git a/src/main.rs b/src/main.rs index f768990..ec45047 100644 --- a/src/main.rs +++ b/src/main.rs @@ -63,6 +63,8 @@ async fn main() { logger::Logger::new() .with_level(config.log.level) .with_metrics(config.log.enable_metrics) + .with_stderr(config.log.stderr) + .with_thread(config.log.enable_thread_id) .init() .expect("Failed to initialize custom logger");