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
//! Not just a pretty (inter)face. //! //! A pretty-printer and [ndjson](http://ndjson.org/) logger for the [log](https://docs.rs/log) crate. //! //! ## Examples //! ``` //! femme::start(log::LevelFilter::Trace)?; //! log::warn!("Unauthorized access attempt on /login"); //! log::info!("Listening on port 8080"); //! ``` #[cfg(not(target_arch = "wasm32"))] pub mod ndjson; #[cfg(not(target_arch = "wasm32"))] pub mod pretty; #[cfg(target_arch = "wasm32")] pub mod wasm; /// Starts logging depending on current environment. /// /// # Log output /// /// - when compiling with `--release` uses ndjson. /// - pretty-prints otherwise. /// - works in WASM out of the box. /// /// # Examples /// /// ``` /// femme::start(log::LevelFilter::Trace).unwrap(); /// log::warn!("Unauthorized access attempt on /login"); /// log::info!("Listening on port 8080"); /// ``` pub fn start(filter: log::LevelFilter) -> Result<(), log::SetLoggerError> { #[cfg(target_arch = "wasm32")] wasm::Logger::new().start(filter)?; #[cfg(not(target_arch = "wasm32"))] { if cfg!(debug_assertions) { pretty::Logger::new().start(filter)?; } else { ndjson::Logger::new().start(filter)?; } } Ok(()) }