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
//! 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::warn!("Unauthorized access attempt on /login"); //! log::info!("Listening on port 8080"); //! ``` pub use log::LevelFilter; #[cfg(not(target_arch = "wasm32"))] mod ndjson; #[cfg(not(target_arch = "wasm32"))] mod pretty; #[cfg(target_arch = "wasm32")] 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::warn!("Unauthorized access attempt on /login"); /// log::info!("Listening on port 8080"); /// ``` pub fn start() { with_level(LevelFilter::Info); } /// Start logging with a log level. /// /// All messages under the specified log level will statically be filtered out. /// /// # Examples /// ``` /// femme::with_level(log::LevelFilter::Trace); /// ``` pub fn with_level(level: log::LevelFilter) { #[cfg(target_arch = "wasm32")] wasm::start(level); #[cfg(not(target_arch = "wasm32"))] { // Use ndjson in release mode, pretty logging while debugging. if cfg!(debug_assertions) { pretty::start(level); } else { ndjson::start(level); } } }