Skip to content

Commit 9cdbef2

Browse files
committed
Add feature for readable timestamp string
1 parent 94e5aa8 commit 9cdbef2

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,16 @@ keywords = ["pretty-printer", "ndjson", "femme", "log", "logger"]
1010
readme = "README.md"
1111
edition = "2018"
1212

13+
[features]
14+
readable_timestamp = ["chrono"]
15+
1316
[dependencies]
1417
log = { version = "0.4.7", features = ["kv_unstable", "std"] }
1518
serde = "1.0.97"
1619
serde_derive = "1.0.97"
1720
serde_json = "1.0.56"
1821
cfg-if = "0.1.9"
22+
chrono = { version = "0.4.19", optional = true }
1923

2024
[target.'cfg(target_arch = "wasm32")'.dependencies]
2125
web-sys = { version = "0.3.25", features = ["console"] }

src/ndjson.rs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
//! Print logs as ndjson.
22
3+
#[cfg(readable_timestamp)]
4+
use chrono::prelude::*;
35
use log::{kv, LevelFilter, Log, Metadata, Record};
46
use std::io::{self, StdoutLock, Write};
57
use std::time;
@@ -24,8 +26,26 @@ impl Log for Logger {
2426
let stdout = io::stdout();
2527
let mut handle = stdout.lock();
2628
let level = get_level(record.level());
27-
let time = time::UNIX_EPOCH.elapsed().unwrap().as_millis();
28-
write!(&mut handle, "{{\"level\":{},\"time\":{},\"msg\":", level, time).unwrap();
29+
#[cfg(not(readable_timestamp))]
30+
{
31+
let time = time::UNIX_EPOCH.elapsed().unwrap().as_millis();
32+
write!(
33+
&mut handle,
34+
"{{\"level\":{},\"time\":{},\"msg\":",
35+
level, time
36+
)
37+
.unwrap();
38+
}
39+
#[cfg(readable_timestamp)]
40+
{
41+
let time = Local::now().format("%Y-%m-%d %H:%M:%S%.f%z");
42+
write!(
43+
&mut handle,
44+
"{{\"level\":{},\"time\":\"{}\",\"msg\":",
45+
level, time
46+
)
47+
.unwrap();
48+
}
2949
serde_json::to_writer(&mut handle, record.args()).unwrap();
3050
format_kv_pairs(&mut handle, &record);
3151
writeln!(&mut handle, "}}").unwrap();

0 commit comments

Comments
 (0)