From 93326dd9e1ad8d374aade2b8c967e9f36ad0f954 Mon Sep 17 00:00:00 2001 From: Sai Asish Y Date: Wed, 13 May 2026 14:36:16 -0700 Subject: [PATCH] feat(example): show milliseconds since logger init --- examples/millis_since_init.rs | 39 +++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 examples/millis_since_init.rs diff --git a/examples/millis_since_init.rs b/examples/millis_since_init.rs new file mode 100644 index 00000000..683cede7 --- /dev/null +++ b/examples/millis_since_init.rs @@ -0,0 +1,39 @@ +/*! +Including the milliseconds elapsed since the logger was initialized in each +record, similar to `Log4J`'s relative time pattern. + +Before running this example, try setting the `MY_LOG_LEVEL` environment variable to `info`: + +```no_run,shell +$ export MY_LOG_LEVEL='info' +``` +*/ + +use std::io::Write; +use std::time::Instant; + +use env_logger::{Builder, Env}; + +fn init_logger() { + let env = Env::default().filter("MY_LOG_LEVEL"); + + let start = Instant::now(); + Builder::from_env(env) + .format(move |buf, record| { + let elapsed = start.elapsed().as_millis(); + writeln!( + buf, + "[{elapsed:>6} ms] {}: {}", + record.level(), + record.args() + ) + }) + .init(); +} + +fn main() { + init_logger(); + + log::info!("a log from `MyLogger`"); + log::warn!("another log, a moment later"); +}