tracing_subscriber::fmt

Struct FmtContext

Source
pub struct FmtContext<'a, S, N> { /* private fields */ }
Available on crate features fmt and std only.
Expand description

Provides the current span context to a formatter.

Implementations§

Source§

impl<'a, S, N> FmtContext<'a, S, N>
where S: Subscriber + for<'lookup> LookupSpan<'lookup>, N: for<'writer> FormatFields<'writer> + 'static,

Source

pub fn visit_spans<E, F>(&self, f: F) -> Result<(), E>
where F: FnMut(&SpanRef<'_, S>) -> Result<(), E>,

Visits every span in the current context with a closure.

The provided closure will be called first with the current span, and then with that span’s parent, and then that span’s parent, and so on until a root span is reached.

Source

pub fn metadata(&self, id: &Id) -> Option<&'static Metadata<'static>>
where S: for<'lookup> LookupSpan<'lookup>,

Returns metadata for the span with the given id, if it exists.

If this returns None, then no span exists for that ID (either it has closed or the ID is invalid).

Source

pub fn span(&self, id: &Id) -> Option<SpanRef<'_, S>>
where S: for<'lookup> LookupSpan<'lookup>,

Returns stored data for the span with the given id, if it exists.

If this returns None, then no span exists for that ID (either it has closed or the ID is invalid).

Source

pub fn exists(&self, id: &Id) -> bool
where S: for<'lookup> LookupSpan<'lookup>,

Returns true if an active span exists for the given Id.

Source

pub fn lookup_current(&self) -> Option<SpanRef<'_, S>>
where S: for<'lookup> LookupSpan<'lookup>,

Returns stored data for the span that the wrapped subscriber considers to be the current.

If this returns None, then we are not currently within a span.

Source

pub fn current_span(&self) -> Current

Returns the current span for this formatter.

Source

pub fn parent_span(&self) -> Option<SpanRef<'_, S>>

Returns stored data for the parent span of the event currently being formatted.

If the event has a contextual parent, this will return the current span. If the event has an explicit parent span, this will return that span. If the event does not have a parent span, this will return None.

Source

pub fn span_scope(&self, id: &Id) -> Option<Scope<'_, S>>
where S: for<'lookup> LookupSpan<'lookup>,

Returns an iterator over the stored data for all the spans in the current context, starting with the specified span and ending with the root of the trace tree and ending with the current span.

This is equivalent to the Context::span_scope method.

Note
Note: Compared to scope this
returns the spans in reverse order (from leaf to root). Use
Scope::from_root
in case root-to-leaf ordering is desired.
Note: This requires the wrapped subscriber to implement the
LookupSpan trait.
See the documentation on Context's
declaration for details.
Source

pub fn event_scope(&self) -> Option<Scope<'_, S>>
where S: for<'lookup> LookupSpan<'lookup>,

Returns an iterator over the stored data for all the spans in the event’s span context, starting with its parent span and ending with the root of the trace tree.

This is equivalent to calling the Context::event_scope method and passing the event currently being formatted.

Note: Compared to scope this
returns the spans in reverse order (from leaf to root). Use
Scope::from_root
in case root-to-leaf ordering is desired.
Note: This requires the wrapped subscriber to implement the
LookupSpan trait.
See the documentation on Context's
declaration for details.
Source

pub fn field_format(&self) -> &N

Returns the field formatter configured by the subscriber invoking format_event.

The event formatter may use the returned field formatter to format the fields of any events it records.

Trait Implementations§

Source§

impl<'a, S, N> Debug for FmtContext<'a, S, N>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'cx, 'writer, S, N> FormatFields<'writer> for FmtContext<'cx, S, N>
where S: Subscriber + for<'lookup> LookupSpan<'lookup>, N: FormatFields<'writer> + 'static,

Source§

fn format_fields<R: RecordFields>( &self, writer: Writer<'writer>, fields: R, ) -> Result

Format the provided fields to the provided Writer, returning a result.
Source§

fn add_fields( &self, current: &'writer mut FormattedFields<Self>, fields: &Record<'_>, ) -> Result

Record additional field(s) on an existing span. Read more

Auto Trait Implementations§

§

impl<'a, S, N> Freeze for FmtContext<'a, S, N>

§

impl<'a, S, N> !RefUnwindSafe for FmtContext<'a, S, N>

§

impl<'a, S, N> !Send for FmtContext<'a, S, N>

§

impl<'a, S, N> !Sync for FmtContext<'a, S, N>

§

impl<'a, S, N> Unpin for FmtContext<'a, S, N>

§

impl<'a, S, N> !UnwindSafe for FmtContext<'a, S, N>

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.

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 32 bytes