1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
//! This module contains two traits which allow adding a stateful filter
//! using [`Logger::filter`](crate::Logger::filter).
//!
//! # Example
//!
//! ```rust
//! 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(())
//! }
//! ```
use crateDeferredNow;
use Record;
/// Trait of the filter object.
/// Write out a single log line