Skip to main content

JsonLayer

Struct JsonLayer 

Source
pub struct JsonLayer<W, T = SystemTimestamp> { /* private fields */ }
Expand description

A tracing_subscriber::Layer that formats events as JSON lines.

See the crate-level docs for configuration options and output format details.

Implementations§

Source§

impl<W> JsonLayer<W>
where W: for<'w> MakeWriter<'w> + 'static,

Source

pub fn new(make_writer: W) -> Self

Create a new JsonLayer that writes JSON lines to make_writer.

Accepts anything implementing tracing_subscriber::fmt::MakeWriter, e.g. std::io::stderr or std::io::stdout.

Source§

impl<W, T> JsonLayer<W, T>
where W: for<'w> MakeWriter<'w> + 'static,

Source

pub fn with_target(self, display_target: bool) -> Self

Set whether the target field (module path) is included in output.

Default: true.

Source

pub fn with_file(self, display_filename: bool) -> Self

Set whether the filename field is included in output.

Default: false.

Source

pub fn with_line_number(self, display_line: bool) -> Self

Set whether the line_number field is included in output.

Default: false.

Source

pub fn with_thread_ids(self, display_thread_id: bool) -> Self

Set whether the threadId field is included in output.

Default: false.

Source

pub fn with_thread_names(self, display_thread_name: bool) -> Self

Set whether the threadName field is included in output.

Default: false.

Source

pub fn flatten_event(self, flatten: bool) -> Self

Set whether event fields are flattened to the top level of the JSON object instead of being nested under a "fields" key.

Default: false (fields are nested).

Source

pub fn with_buffer_capacity_limit(self, limit: usize) -> Self

Set the capacity threshold at which the per-thread formatting buffer is shrunk back to its default size after each event.

The formatting buffer is reused across events on the same thread to avoid allocations. If an unusually large event grows the buffer beyond this limit, it is shrunk back to 256 bytes after that event to reclaim memory.

Default: 4096 bytes.

Source

pub fn with_timer<T2: FormatTime>(self, timer: T2) -> JsonLayer<W, T2>

Use a custom FormatTime implementation for timestamps.

This replaces the default SystemTimestamp formatter. Any type implementing FormatTime can be used, including those from tracing-subscriber such as Uptime and ChronoUtc.

Pass () to disable timestamps entirely (equivalent to without_time).

Source

pub fn without_time(self) -> JsonLayer<W, ()>

Disable timestamps in the output.

This is a convenience for self.with_timer(()).

Trait Implementations§

Source§

impl<S, W, T> Layer<S> for JsonLayer<W, T>
where S: Subscriber + for<'a> LookupSpan<'a>, W: for<'w> MakeWriter<'w> + 'static, T: FormatTime + 'static,

Source§

fn on_new_span(&self, attrs: &Attributes<'_>, id: &Id, ctx: Context<'_, S>)

Notifies this layer that a new span was constructed with the given Attributes and Id.
Source§

fn on_record(&self, id: &Id, values: &Record<'_>, ctx: Context<'_, S>)

Notifies this layer that a span with the given Id recorded the given values.
Source§

fn on_event(&self, event: &Event<'_>, ctx: Context<'_, S>)

Notifies this layer that an event has occurred.
Source§

fn on_register_dispatch(&self, subscriber: &Dispatch)

Performs late initialization when installing this layer as a Subscriber. Read more
Source§

fn on_layer(&mut self, subscriber: &mut S)

Performs late initialization when attaching a Layer to a Subscriber. Read more
Source§

fn register_callsite(&self, metadata: &'static Metadata<'static>) -> Interest

Registers a new callsite with this layer, returning whether or not the layer is interested in being notified about the callsite, similarly to Subscriber::register_callsite. Read more
Source§

fn enabled(&self, metadata: &Metadata<'_>, ctx: Context<'_, S>) -> bool

Returns true if this layer is interested in a span or event with the given metadata in the current Context, similarly to Subscriber::enabled. Read more
Source§

fn on_follows_from(&self, _span: &Id, _follows: &Id, _ctx: Context<'_, S>)

Notifies this layer that a span with the ID span recorded that it follows from the span with the ID follows.
Source§

fn event_enabled(&self, _event: &Event<'_>, _ctx: Context<'_, S>) -> bool

Called before on_event, to determine if on_event should be called. Read more
Source§

fn on_enter(&self, _id: &Id, _ctx: Context<'_, S>)

Notifies this layer that a span with the given ID was entered.
Source§

fn on_exit(&self, _id: &Id, _ctx: Context<'_, S>)

Notifies this layer that the span with the given ID was exited.
Source§

fn on_close(&self, _id: Id, _ctx: Context<'_, S>)

Notifies this layer that the span with the given ID has been closed.
Source§

fn on_id_change(&self, _old: &Id, _new: &Id, _ctx: Context<'_, S>)

Notifies this layer that a span ID has been cloned, and that the subscriber returned a different ID.
Source§

fn and_then<L>(self, layer: L) -> Layered<L, Self, S>
where L: Layer<S>, Self: Sized,

Composes this layer around the given Layer, returning a Layered struct implementing Layer. Read more
Source§

fn with_subscriber(self, inner: S) -> Layered<Self, S>
where Self: Sized,

Composes this Layer with the given Subscriber, returning a Layered struct that implements Subscriber. Read more
Source§

fn with_filter<F>(self, filter: F) -> Filtered<Self, F, S>
where Self: Sized, F: Filter<S>,

Combines self with a Filter, returning a Filtered layer. Read more
Source§

fn boxed(self) -> Box<dyn Layer<S> + Send + Sync>
where Self: Sized + Layer<S> + Send + Sync + 'static, S: Subscriber,

Erases the type of this Layer, returning a Boxed dyn Layer trait object. Read more

Auto Trait Implementations§

§

impl<W, T> Freeze for JsonLayer<W, T>
where W: Freeze, T: Freeze,

§

impl<W, T> RefUnwindSafe for JsonLayer<W, T>

§

impl<W, T> Send for JsonLayer<W, T>
where W: Send, T: Send,

§

impl<W, T> Sync for JsonLayer<W, T>
where W: Sync, T: Sync,

§

impl<W, T> Unpin for JsonLayer<W, T>
where W: Unpin, T: Unpin,

§

impl<W, T> UnsafeUnpin for JsonLayer<W, T>
where W: UnsafeUnpin, T: UnsafeUnpin,

§

impl<W, T> UnwindSafe for JsonLayer<W, T>
where W: UnwindSafe, T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.