From d891164e82caf84b97738d865c67b35ab59d309e Mon Sep 17 00:00:00 2001 From: Daan Pruijt Date: Mon, 1 Jun 2026 14:02:11 +0000 Subject: [PATCH] fix(tracing): preserve real target in pylance log passthrough The on_event logging passthrough was hard-coding the log target to 'lance::events' for every tracing event, which made it impossible to filter specific event families (e.g. high-volume 'lance::file_audit' per-file events) via env_logger's per-target LANCE_LOG directives. Preserve the original tracing event target (e.g. 'lance::file_audit', 'lance::dataset::cleanup') as the log record target. This lets LANCE_LOG='info,lance::file_audit=warn' silence file-audit spam while keeping other INFO logs such as cleanup progress. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- python/src/tracing.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/python/src/tracing.rs b/python/src/tracing.rs index fdeb3c49220..4006c093693 100644 --- a/python/src/tracing.rs +++ b/python/src/tracing.rs @@ -248,7 +248,13 @@ impl tracing_subscriber::Layer for LoggingPassthroughRef { let mut fields = EventToStr::default(); event.record(&mut fields); - log::log!(target: "lance::events", state.level, "target=\"{}\" {}", event.metadata().target(), fields.str); + // Forward the event under its real tracing target (e.g. `lance::file_audit`, + // `lance::dataset::cleanup`) rather than a single fixed `lance::events` target. + // env_logger only filters by the log record's target, so preserving it lets + // `LANCE_LOG` directives target specific event families (e.g. silencing the + // high-volume per-file `lance::file_audit` events while keeping other INFO logs). + let event_target = event.metadata().target(); + log::log!(target: event_target, state.level, "target=\"{}\" {}", event_target, fields.str); if let Some(callback_sender) = state.callback_sender.as_ref() { let mut args = EventToMap::default();