Module flexi_logger::filter
source · Expand description
This module contains two traits which allow adding a stateful filter
using Logger::filter
.
§Example
use flexi_logger::{
filter::{LogLineFilter, LogLineWriter},
DeferredNow, FlexiLoggerError,
};
pub struct BarsOnly;
impl LogLineFilter for BarsOnly {
fn write(
&self,
now: &mut DeferredNow,
record: &log::Record,
log_line_writer: &dyn LogLineWriter,
) -> std::io::Result<()> {
if record.args().to_string().contains("bar") {
log_line_writer.write(now, record)?;
}
Ok(())
}
}
fn main() -> Result<(), FlexiLoggerError> {
flexi_logger::Logger::try_with_str("info")?
.filter(Box::new(BarsOnly))
.start()?;
log::info!("barista");
log::info!("foo"); // will be swallowed by the filter
log::info!("bar");
log::info!("gaga"); // will be swallowed by the filter
Ok(())
}
Traits§
- Trait of the filter object.
- Write out a single log line