1515//! ## Example
1616//!
1717//! ```
18- //! #[macro_use] extern crate log ;
18+ //! use log::{debug, error, log_enabled, info, Level} ;
1919//!
20- //! use log::Level ;
20+ //! env_logger::init() ;
2121//!
22- //! fn main() {
23- //! env_logger::init( );
22+ //! debug!("this is a debug {}", "message");
23+ //! error!("this is printed by default" );
2424//!
25- //! debug!("this is a debug {}", "message");
26- //! error!("this is printed by default");
27- //!
28- //! if log_enabled!(Level::Info) {
29- //! let x = 3 * 4; // expensive computation
30- //! info!("the answer was: {}", x);
31- //! }
25+ //! if log_enabled!(Level::Info) {
26+ //! let x = 3 * 4; // expensive computation
27+ //! info!("the answer was: {}", x);
3228//! }
3329//! ```
3430//!
146142//!
147143//! ```
148144//! # #[macro_use] extern crate log;
149- //! # fn main() {}
150145//! #[cfg(test)]
151146//! mod tests {
152147//! fn init() {
245240#![ cfg_attr( rustbuild, feature( staged_api, rustc_private) ) ]
246241#![ cfg_attr( rustbuild, unstable( feature = "rustc_private" , issue = "27812" ) ) ]
247242#![ deny( missing_debug_implementations, missing_docs, warnings) ]
248- #![ allow( clippy:: needless_doctest_main) ]
249243
250244use std:: { borrow:: Cow , cell:: RefCell , env, io} ;
251245
@@ -258,7 +252,7 @@ pub use self::fmt::glob::*;
258252
259253use self :: filter:: Filter ;
260254use self :: fmt:: writer:: { self , Writer } ;
261- use self :: fmt:: Formatter ;
255+ use self :: fmt:: { FormatFn , Formatter } ;
262256
263257/// The default name for the environment variable to read filters from.
264258pub const DEFAULT_FILTER_ENV : & str = "RUST_LOG" ;
@@ -310,8 +304,7 @@ struct Var<'a> {
310304pub struct Logger {
311305 writer : Writer ,
312306 filter : Filter ,
313- #[ allow( unknown_lints, bare_trait_objects) ]
314- format : Box < Fn ( & mut Formatter , & Record ) -> io:: Result < ( ) > + Sync + Send > ,
307+ format : FormatFn ,
315308}
316309
317310/// `Builder` acts as builder for initializing a `Logger`.
@@ -322,23 +315,20 @@ pub struct Logger {
322315/// # Examples
323316///
324317/// ```
325- /// #[macro_use] extern crate log;
326- ///
327- /// use std::env;
328- /// use std::io::Write;
329- /// use log::LevelFilter;
318+ /// # #[macro_use] extern crate log;
319+ /// # use std::io::Write;
330320/// use env_logger::Builder;
321+ /// use log::LevelFilter;
331322///
332- /// fn main() {
333- /// let mut builder = Builder::from_default_env();
323+ /// let mut builder = Builder::from_default_env();
334324///
335- /// builder.format(|buf, record| writeln!(buf, "{} - {}", record.level(), record.args()))
336- /// .filter(None, LevelFilter::Info)
337- /// .init();
325+ /// builder
326+ /// .format(|buf, record| writeln!(buf, "{} - {}", record.level(), record.args()))
327+ /// .filter(None, LevelFilter::Info)
328+ /// .init();
338329///
339- /// error!("error message");
340- /// info!("info message");
341- /// }
330+ /// error!("error message");
331+ /// info!("info message");
342332/// ```
343333#[ derive( Default ) ]
344334pub struct Builder {
@@ -360,16 +350,15 @@ impl Builder {
360350 /// Create a new builder and configure filters and style:
361351 ///
362352 /// ```
363- /// # fn main() {
364353 /// use log::LevelFilter;
365354 /// use env_logger::{Builder, WriteStyle};
366355 ///
367356 /// let mut builder = Builder::new();
368357 ///
369- /// builder.filter(None, LevelFilter::Info)
370- /// .write_style(WriteStyle::Always )
371- /// .init();
372- /// # }
358+ /// builder
359+ /// .filter(None, LevelFilter::Info )
360+ /// .write_style(WriteStyle::Always)
361+ /// .init();
373362 /// ```
374363 ///
375364 /// [`filter`]: #method.filter
@@ -612,14 +601,12 @@ impl Builder {
612601 /// Only include messages for info and above for logs in `path::to::module`:
613602 ///
614603 /// ```
615- /// # fn main() {
616- /// use log::LevelFilter;
617604 /// use env_logger::Builder;
605+ /// use log::LevelFilter;
618606 ///
619607 /// let mut builder = Builder::new();
620608 ///
621609 /// builder.filter_module("path::to::module", LevelFilter::Info);
622- /// # }
623610 /// ```
624611 pub fn filter_module ( & mut self , module : & str , level : LevelFilter ) -> & mut Self {
625612 self . filter . filter_module ( module, level) ;
@@ -633,14 +620,12 @@ impl Builder {
633620 /// Only include messages for info and above for logs in `path::to::module`:
634621 ///
635622 /// ```
636- /// # fn main() {
637- /// use log::LevelFilter;
638623 /// use env_logger::Builder;
624+ /// use log::LevelFilter;
639625 ///
640626 /// let mut builder = Builder::new();
641627 ///
642628 /// builder.filter_level(LevelFilter::Info);
643- /// # }
644629 /// ```
645630 pub fn filter_level ( & mut self , level : LevelFilter ) -> & mut Self {
646631 self . filter . filter_level ( level) ;
@@ -657,14 +642,12 @@ impl Builder {
657642 /// Only include messages for info and above for logs in `path::to::module`:
658643 ///
659644 /// ```
660- /// # fn main() {
661- /// use log::LevelFilter;
662645 /// use env_logger::Builder;
646+ /// use log::LevelFilter;
663647 ///
664648 /// let mut builder = Builder::new();
665649 ///
666650 /// builder.filter(Some("path::to::module"), LevelFilter::Info);
667- /// # }
668651 /// ```
669652 pub fn filter ( & mut self , module : Option < & str > , level : LevelFilter ) -> & mut Self {
670653 self . filter . filter ( module, level) ;
@@ -1125,7 +1108,6 @@ pub fn init() {
11251108/// and `MY_LOG_STYLE` for writing colors:
11261109///
11271110/// ```
1128- /// # extern crate env_logger;
11291111/// use env_logger::{Builder, Env};
11301112///
11311113/// # fn run() -> Result<(), Box<::std::error::Error>> {
@@ -1135,7 +1117,7 @@ pub fn init() {
11351117///
11361118/// Ok(())
11371119/// # }
1138- /// # fn main() { run().unwrap(); }
1120+ /// # run().unwrap();
11391121/// ```
11401122///
11411123/// # Errors
0 commit comments