holochain_logging 0.0.4

A logger for Holochain


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:

cargo run --example simple-fastlog-example


cargo run --example from-toml-fastlog-example

Additional examples can be found here as well.

CLI Support

This logging factory handles the environnement variable RUST_LOG as well so it can be used like this (the logger has to be registered):

RUST_LOG="debug" path/to/exec

Building a logger

Here is an example of how to simply build a logger with the Debug log verbosity level:

    // Optionally you can specify your custom timestamp format
    .timestamp_format("%Y-%m-%d %H:%M:%S%.6f") 
    .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:

let toml = r#"
level = "debug"

pattern = ".*"
exclude = true

pattern = "^holochain"
exclude = false

.expect("Fail to instantiate the logger from toml.")
.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");