From a8d4e8943b82ed67e494da9d73ef6cafa0154b0b Mon Sep 17 00:00:00 2001 From: zonyitoo Date: Wed, 25 Mar 2020 22:50:10 +0800 Subject: [PATCH] Customized logging format with Local time instead of UTC fix #217 --- Cargo.toml | 4 ++-- src/bin/logging/mod.rs | 26 +++++++++++++++++++------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 79e9755d..f03a631e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -62,9 +62,9 @@ local-protocol-http = ["hyper", "http", "tower"] [dependencies] log = "0.4" rand = "0.7" -time = "0.2" clap = "2.33" -env_logger = "0.7" +env_logger = { version = "0.7", default-features = false, features = ["termcolor", "atty", "regex"] } +chrono = "0.4" openssl = { version = "0.10", optional = true } libc = "^0.2.68" tokio = { version = "^0.2.7", features = ["net", "signal", "time", "sync", "process", "rt-threaded", "rt-core", "stream", "io-util"] } diff --git a/src/bin/logging/mod.rs b/src/bin/logging/mod.rs index e17ceb28..45fef6ed 100644 --- a/src/bin/logging/mod.rs +++ b/src/bin/logging/mod.rs @@ -1,11 +1,27 @@ -use std::env; +use std::io::Write; +use chrono::{offset::Local, SecondsFormat}; use env_logger::Builder; use log::LevelFilter; pub fn init(debug_level: u64, bin_name: &str) { - let mut log_builder = Builder::new(); - log_builder.filter(None, LevelFilter::Info).default_format(); + let mut log_builder = Builder::from_default_env(); + log_builder.filter(None, LevelFilter::Info); + + log_builder.format(move |buf, record| { + write!( + buf, + "{} {:<5}", + Local::now().to_rfc3339_opts(SecondsFormat::Secs, false), + buf.default_styled_level(record.level()) + )?; + + if debug_level > 0 { + write!(buf, " [{}]", record.module_path().unwrap_or(""))?; + } + + writeln!(buf, " {}", record.args()) + }); match debug_level { 0 => { @@ -29,9 +45,5 @@ pub fn init(debug_level: u64, bin_name: &str) { } } - if let Ok(env_conf) = env::var("RUST_LOG") { - log_builder.parse_filters(&env_conf); - } - log_builder.init(); }