Trait slog::Drain
[−]
[src]
pub trait Drain {
type Error;
fn log(
&self,
info: &Record,
_: &OwnedKeyValueList
) -> Result<(), Self::Error>;
}Logging drain
Drains generally mean destination for logs, but slog generalize the
term. Drains are responsible for filtering, modifying, formatting
and writing the log records into given destination.
Implementing this trait allows writing own Drains, that can be combined with other drains.
Associated Types
type Error
Type of potential errors returned during logging
Required Methods
fn log(&self, info: &Record, _: &OwnedKeyValueList) -> Result<(), Self::Error>
Log one logging record
Every logging Record built from a logging statement (eg.
info!(...)), and key-value lists of a Logger it was executed on
will be passed to the root drain registered during Logger::root.
Typically Drains:
- pass this information (or not) to the sub-logger(s) (filters)
- format and write the information the a destination (writers)
- deal with the errors returned from the sub-logger(s)
Implementors
impl<D: Drain + ?Sized> Drain for Box<D>impl<D: Drain + ?Sized> Drain for Arc<D>impl Drain for Discardimpl<D: Drain> Drain for Filter<D>impl<D: Drain, E> Drain for MapError<D, E>impl<D: Drain> Drain for LevelFilter<D>impl<D1: Drain, D2: Drain> Drain for Duplicate<D1, D2>impl<D: Drain> Drain for Fuse<D> where
D::Error: Display,impl<D: Drain> Drain for IgnoreErr<D>