diff --git a/Cargo.lock b/Cargo.lock index 2ab1244d41e7c..0cefc9eee3fec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3990,6 +3990,7 @@ version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ + "chrono", "matchers", "nu-ansi-term 0.46.0", "once_cell", diff --git a/crates/ruff_server/Cargo.toml b/crates/ruff_server/Cargo.toml index 7924b988be726..a3d0b7cee5621 100644 --- a/crates/ruff_server/Cargo.toml +++ b/crates/ruff_server/Cargo.toml @@ -40,7 +40,7 @@ shellexpand = { workspace = true } thiserror = { workspace = true } toml = { workspace = true } tracing = { workspace = true } -tracing-subscriber = { workspace = true } +tracing-subscriber = { workspace = true, features = ["chrono"] } [dev-dependencies] insta = { workspace = true } diff --git a/crates/ruff_server/src/logging.rs b/crates/ruff_server/src/logging.rs index 1b23bff3bddf7..d4747cadae930 100644 --- a/crates/ruff_server/src/logging.rs +++ b/crates/ruff_server/src/logging.rs @@ -9,7 +9,7 @@ use serde::Deserialize; use std::{path::PathBuf, str::FromStr, sync::Arc}; use tracing::level_filters::LevelFilter; use tracing_subscriber::{ - fmt::{format::FmtSpan, time::Uptime, writer::BoxMakeWriter}, + fmt::{format::FmtSpan, time::ChronoLocal, writer::BoxMakeWriter}, layer::SubscriberExt, Layer, }; @@ -49,10 +49,13 @@ pub(crate) fn init_logging(log_level: LogLevel, log_file: Option<&std::path::Pat Some(file) => BoxMakeWriter::new(Arc::new(file)), None => BoxMakeWriter::new(std::io::stderr), }; + + let is_trace_level = log_level == LogLevel::Trace; let subscriber = tracing_subscriber::Registry::default().with( tracing_subscriber::fmt::layer() - .with_timer(Uptime::default()) - .with_thread_names(true) + .with_timer(ChronoLocal::new("%Y-%m-%d %H:%M:%S.%f".to_string())) + .with_thread_names(is_trace_level) + .with_target(is_trace_level) .with_ansi(false) .with_writer(logger) .with_span_events(FmtSpan::ENTER)