1414//! use env_filter::Filter;
1515//! use log::{Log, Metadata, Record};
1616//!
17- //! struct MyLogger {
18- //! filter: Filter
19- //! }
20- //!
21- //! impl MyLogger {
22- //! fn new() -> MyLogger {
23- //! use env_filter::Builder;
24- //! let mut builder = Builder::new();
25- //!
26- //! // Parse a directives string from an environment variable
27- //! if let Ok(ref filter) = std::env::var("MY_LOG_LEVEL") {
28- //! builder.parse(filter);
29- //! }
17+ //! struct PrintLogger;
3018//!
31- //! MyLogger {
32- //! filter: builder.build()
33- //! }
34- //! }
35- //! }
36- //!
37- //! impl Log for MyLogger {
19+ //! impl Log for PrintLogger {
3820//! fn enabled(&self, metadata: &Metadata) -> bool {
39- //! self.filter.enabled(metadata)
21+ //! true
4022//! }
4123//!
4224//! fn log(&self, record: &Record) {
43- //! // Check if the record is matched by the filter
44- //! if self.filter.matches(record) {
45- //! println!("{:?}", record);
46- //! }
25+ //! println!("{:?}", record);
4726//! }
4827//!
4928//! fn flush(&self) {}
5029//! }
30+ //!
31+ //! let mut builder = env_filter::Builder::new();
32+ //! // Parse a directives string from an environment variable
33+ //! if let Ok(ref filter) = std::env::var("MY_LOG_LEVEL") {
34+ //! builder.parse(filter);
35+ //! }
36+ //!
37+ //! let logger = env_filter::FilteredLog::new(PrintLogger, builder.build());
5138//! ```
5239
5340mod directive;
5441mod filter;
42+ mod filtered_log;
5543mod op;
5644mod parser;
5745
@@ -62,3 +50,4 @@ use parser::parse_spec;
6250
6351pub use filter:: Builder ;
6452pub use filter:: Filter ;
53+ pub use filtered_log:: FilteredLog ;
0 commit comments