Struct BoxMakeWriter
pub struct BoxMakeWriter { /* private fields */ }Expand description
A writer that erases the specific io::Write and MakeWriter types being used.
This is useful in cases where the concrete type of the writer cannot be known until runtime.
§Examples
A function that returns a Subscriber that will write to either stdout or stderr:
fn dynamic_writer(use_stderr: bool) -> impl Subscriber {
let writer = if use_stderr {
BoxMakeWriter::new(std::io::stderr)
} else {
BoxMakeWriter::new(std::io::stdout)
};
tracing_subscriber::fmt().with_writer(writer).finish()
}Implementations§
§impl BoxMakeWriter
impl BoxMakeWriter
pub fn new<M>(make_writer: M) -> BoxMakeWriter
pub fn new<M>(make_writer: M) -> BoxMakeWriter
Constructs a BoxMakeWriter wrapping a type implementing MakeWriter.
Trait Implementations§
§impl Debug for BoxMakeWriter
impl Debug for BoxMakeWriter
§impl<'a> MakeWriter<'a> for BoxMakeWriter
impl<'a> MakeWriter<'a> for BoxMakeWriter
§fn make_writer(&'a self) -> <BoxMakeWriter as MakeWriter<'a>>::Writer
fn make_writer(&'a self) -> <BoxMakeWriter as MakeWriter<'a>>::Writer
§fn make_writer_for(
&'a self,
meta: &Metadata<'_>,
) -> <BoxMakeWriter as MakeWriter<'a>>::Writer
fn make_writer_for( &'a self, meta: &Metadata<'_>, ) -> <BoxMakeWriter as MakeWriter<'a>>::Writer
Auto Trait Implementations§
impl Freeze for BoxMakeWriter
impl !RefUnwindSafe for BoxMakeWriter
impl Send for BoxMakeWriter
impl Sync for BoxMakeWriter
impl Unpin for BoxMakeWriter
impl !UnwindSafe for BoxMakeWriter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<'a, M> MakeWriterExt<'a> for Mwhere
M: MakeWriter<'a>,
impl<'a, M> MakeWriterExt<'a> for Mwhere
M: MakeWriter<'a>,
§fn with_max_level(self, level: Level) -> WithMaxLevel<Self>where
Self: Sized,
fn with_max_level(self, level: Level) -> WithMaxLevel<Self>where
Self: Sized,
Wraps
self and returns a MakeWriter that will only write output
for events at or below the provided verbosity Level. For instance,
Level::TRACE is considered to be _more verbosethanLevel::INFO`. Read more§fn with_min_level(self, level: Level) -> WithMinLevel<Self>where
Self: Sized,
fn with_min_level(self, level: Level) -> WithMinLevel<Self>where
Self: Sized,
Wraps
self and returns a MakeWriter that will only write output
for events at or above the provided verbosity Level. Read more§fn with_filter<F>(self, filter: F) -> WithFilter<Self, F>
fn with_filter<F>(self, filter: F) -> WithFilter<Self, F>
Wraps
self with a predicate that takes a span or event’s Metadata
and returns a bool. The returned MakeWriter’s
MakeWriter::make_writer_for method will check the predicate to
determine if a writer should be produced for a given span or event. Read more§fn and<B>(self, other: B) -> Tee<Self, B> ⓘwhere
Self: Sized,
B: MakeWriter<'a>,
fn and<B>(self, other: B) -> Tee<Self, B> ⓘwhere
Self: Sized,
B: MakeWriter<'a>,
Combines
self with another type implementing MakeWriter, returning
a new MakeWriter that produces writers that write to both
outputs. Read more§fn or_else<W, B>(self, other: B) -> OrElse<Self, B>
fn or_else<W, B>(self, other: B) -> OrElse<Self, B>
Combines
self with another type implementing MakeWriter, returning
a new MakeWriter that calls other’s make_writer if self’s
make_writer returns OptionalWriter::none. Read more