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 of potential errors returned during logging

Required Methods

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)