This logger implementation has been designed to be fast. It delegates most of the heavy work to a dedicated thread. It offers nice filtering capability that can be combined with an optional and easy to use TOML configuration.
To have a generale view of the capability of this crate, you can run this command:
bash
cargo run --example simple-fastlog-example
or
bash
cargo run --example from-toml-fastlog-example
Additional examples can be found here as well.
This logging factory handles the environnement variable RUST_LOG as well so it can be used like this (the logger has to be registered):
bash
RUST_LOG="debug" path/to/exec
Here is an example of how to simply build a logger with the Debug
log verbosity level:
```rust FastLoggerBuilder::new() // Optionally you can specify your custom timestamp format .timestampformat("%Y-%m-%d %H:%M:%S%.6f") .setlevelfromstr("Debug") .build() .expect("Fail to init the logging factory.");
debug!("What's bugging you today?"); ```
Filtering out every log from dependencies and putting back in everything related to a particular target
is easy:
```rust let toml = r#" [logger] level = "debug"
[[logger.rules]] pattern = ".*" exclude = true
[[logger.rules]] pattern = "^holochain" exclude = false "#;
FastLoggerBuilder::from_toml(toml) .expect("Fail to instantiate the logger from toml.") .build() .expect("Fail to build logger from toml.");
// Should NOT be logged debug!(target: "rpc", "This is our dependency log filtering.");
// Should be logged each in different color. We avoid filtering by prefixing using the 'target' // argument. info!(target: "holochain", "Log message from Holochain Core."); info!(target: "holochain-app-2", "Log message from Holochain Core with instance ID 2"); ```