use flexi_logger::{
filter::{LogLineFilter, LogLineWriter},
DeferredNow, FlexiLoggerError,
};
fn main() -> Result<(), FlexiLoggerError> {
flexi_logger::Logger::try_with_str("info")?
.filter(Box::new(BarsOnly))
.start()?;
log::info!("barista");
log::info!("foo"); log::info!("bar");
log::info!("gaga"); Ok(())
}
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(())
}
}