diff --git a/tracing-log/src/log_tracer.rs b/tracing-log/src/log_tracer.rs index e0038bb4..9359e86e 100644 --- a/tracing-log/src/log_tracer.rs +++ b/tracing-log/src/log_tracer.rs @@ -183,7 +183,9 @@ impl log::Log for LogTracer { } fn log(&self, record: &log::Record<'_>) { - crate::dispatch_record(record); + if self.enabled(record.metadata()) { + crate::dispatch_record(record); + } } fn flush(&self) {} diff --git a/tracing-log/tests/log_tracer.rs b/tracing-log/tests/log_tracer.rs index 6945aecc..a1bee93b 100644 --- a/tracing-log/tests/log_tracer.rs +++ b/tracing-log/tests/log_tracer.rs @@ -1,7 +1,7 @@ use std::sync::{Arc, Mutex}; use tracing::subscriber::with_default; use tracing_core::span::{Attributes, Record}; -use tracing_core::{span, Event, Level, Metadata, Subscriber}; +use tracing_core::{span, Event, Level, LevelFilter, Metadata, Subscriber}; use tracing_log::{LogTracer, NormalizeEvent}; struct State { @@ -26,6 +26,10 @@ impl Subscriber for TestSubscriber { true } + fn max_level_hint(&self) -> Option { + Some(LevelFilter::from_level(Level::INFO)) + } + fn new_span(&self, _span: &Attributes<'_>) -> span::Id { span::Id::from_u64(42) } @@ -63,6 +67,8 @@ fn normalized_metadata() { let state = me.clone(); with_default(TestSubscriber(me), || { + log::info!("expected info log"); + log::debug!("unexpected debug log"); let log = log::Record::builder() .args(format_args!("Error!")) .level(log::Level::Info)