#3511·tracing

Panic in pretty formatter

Author: nduchauxCreated Mar 30, 2026Updated Sep 20, 2026

Bug Report

Version

tracing-subscriber 0.3.23

Platform

Windows gnu

Description

I have a reloadable filter:

rust
let layer: Box<dyn tracing_subscriber::Layer<_> + Send + Sync + 'static> = pretty_layer();
let (reload_layer, reload_handle) =  tracing_subscriber::reload::Layer::new(layer);


fn compact_layer()
-> Box<dyn tracing_subscriber::Layer<tracing_subscriber::Registry> + Send + Sync + 'static> {
    Box::new(
        tracing_subscriber::fmt::layer()
            .with_target(false)
            .compact(),
    )
}

fn pretty_layer()
-> Box<dyn tracing_subscriber::Layer<tracing_subscriber::Registry> + Send + Sync + 'static> {
    Box::new(
        tracing_subscriber::fmt::layer()
            .pretty()
            .with_file(true)
            .with_line_number(true)
            .with_target(true),
    )
}

I can change my layer formatting when I press a key. For example:

rust
let _ = reload_handle.modify(|fmt_layer| *fmt_layer = pretty_layer()); // or the compact_layer() or others

Sometimes, I am getting a panic there in the pretty.rs file as soon as the layer is modified:

rust
  let ext = span.extensions();
  let fields = &ext
      .get::<FormattedFields<N>>()
      .expect("Unable to find FormattedFields in extensions; this is a bug");