diff --git a/easytier-cli/src/main.rs b/easytier-cli/src/main.rs index 674952f..5e82609 100644 --- a/easytier-cli/src/main.rs +++ b/easytier-cli/src/main.rs @@ -366,6 +366,7 @@ fn init_logger() { file_layer.set_ansi(false); let file_layer = file_layer .with_writer(file_appender) + .with_timer(easytier_core::common::get_logger_timer_rfc3339()) .with_filter(file_filter); tracing_subscriber::Registry::default() diff --git a/easytier-core/Cargo.toml b/easytier-core/Cargo.toml index 22d5be7..53605d2 100644 --- a/easytier-core/Cargo.toml +++ b/easytier-core/Cargo.toml @@ -23,6 +23,7 @@ log = "0.4" thiserror = "1.0" auto_impl = "1.1.0" crossbeam = "0.8.4" +time = "0.3" gethostname = "0.4.3" diff --git a/easytier-core/src/common/mod.rs b/easytier-core/src/common/mod.rs index 54eed4c..85eb353 100644 --- a/easytier-core/src/common/mod.rs +++ b/easytier-core/src/common/mod.rs @@ -7,3 +7,19 @@ pub mod netns; pub mod network; pub mod rkyv_util; pub mod stun; + +pub fn get_logger_timer( + format: F, +) -> tracing_subscriber::fmt::time::OffsetTime { + unsafe { + time::util::local_offset::set_soundness(time::util::local_offset::Soundness::Unsound) + }; + let local_offset = time::UtcOffset::current_local_offset() + .unwrap_or(time::UtcOffset::from_whole_seconds(0).unwrap()); + tracing_subscriber::fmt::time::OffsetTime::new(local_offset, format) +} + +pub fn get_logger_timer_rfc3339( +) -> tracing_subscriber::fmt::time::OffsetTime { + get_logger_timer(time::format_description::well_known::Rfc3339) +} diff --git a/easytier-core/src/main.rs b/easytier-core/src/main.rs index 1bb7941..e30c8fc 100644 --- a/easytier-core/src/main.rs +++ b/easytier-core/src/main.rs @@ -15,6 +15,7 @@ mod peers; mod rpc; mod tunnels; +use common::get_logger_timer_rfc3339; use instance::instance::{Instance, InstanceConfigWriter}; use tracing::level_filters::LevelFilter; use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt, EnvFilter, Layer}; @@ -53,7 +54,7 @@ fn init_logger() { file_layer.set_ansi(false); let file_layer = file_layer .with_writer(file_appender) - .with_timer(tracing_subscriber::fmt::time::OffsetTime::local_rfc_3339().unwrap()) + .with_timer(get_logger_timer_rfc3339()) .with_filter(file_filter); // logger to console @@ -63,7 +64,7 @@ fn init_logger() { .unwrap(); let console_layer = tracing_subscriber::fmt::layer() .pretty() - .with_timer(tracing_subscriber::fmt::time::OffsetTime::local_rfc_3339().unwrap()) + .with_timer(get_logger_timer_rfc3339()) .with_writer(std::io::stderr) .with_filter(console_filter);