diff options
Diffstat (limited to 'vendor/env_logger/examples/custom_format.rs')
-rw-r--r-- | vendor/env_logger/examples/custom_format.rs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/vendor/env_logger/examples/custom_format.rs b/vendor/env_logger/examples/custom_format.rs new file mode 100644 index 000000000..cc16b336f --- /dev/null +++ b/vendor/env_logger/examples/custom_format.rs @@ -0,0 +1,54 @@ +/*! +Changing the default logging format. + +Before running this example, try setting the `MY_LOG_LEVEL` environment variable to `info`: + +```no_run,shell +$ export MY_LOG_LEVEL='info' +``` + +Also try setting the `MY_LOG_STYLE` environment variable to `never` to disable colors +or `auto` to enable them: + +```no_run,shell +$ export MY_LOG_STYLE=never +``` + +If you want to control the logging output completely, see the `custom_logger` example. +*/ + +#[cfg(all(feature = "color", feature = "humantime"))] +fn main() { + use env_logger::{fmt::Color, Builder, Env}; + + use std::io::Write; + + fn init_logger() { + let env = Env::default() + .filter("MY_LOG_LEVEL") + .write_style("MY_LOG_STYLE"); + + Builder::from_env(env) + .format(|buf, record| { + let mut style = buf.style(); + style.set_bg(Color::Yellow).set_bold(true); + + let timestamp = buf.timestamp(); + + writeln!( + buf, + "My formatted log ({}): {}", + timestamp, + style.value(record.args()) + ) + }) + .init(); + } + + init_logger(); + + log::info!("a log from `MyLogger`"); +} + +#[cfg(not(all(feature = "color", feature = "humantime")))] +fn main() {} |