Skip to content

Commit dbb80bb

Browse files
committed
👷 logger: use tracing crate for logging spans
1 parent 3435edb commit dbb80bb

File tree

5 files changed

+239
-17
lines changed

5 files changed

+239
-17
lines changed

‎Cargo.lock‎

Lines changed: 188 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Cargo.toml‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ reqwest = { version = "0.12", features = ["blocking", "json"] }
2525
unic-langid = "0.9"
2626
phf = { version = "0.11", features = ["macros"], default-features = false }
2727
chwd = { git = "https://github.com/CachyOS/chwd", rev = "3b288ba0d86b1d078057eb7f3d50b562959fd17a", version = "1.11.0" }
28+
tracing = "0.1"
29+
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
30+
tracing-appender = "0.2"
2831

2932
[build-dependencies]
3033
anyhow = "1"

‎src/logger.rs‎

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
use crate::utils;
2+
3+
use tracing_appender::non_blocking::WorkerGuard;
4+
use tracing_subscriber::prelude::*;
5+
use tracing_subscriber::EnvFilter;
6+
7+
pub fn setup_logger() -> WorkerGuard {
8+
// set log level from RUST_LOG env var
9+
let env_filter = EnvFilter::try_from_default_env();
10+
11+
// create subscriber env filter
12+
let subscriber_env_filter =
13+
env_filter.unwrap_or_else(|_| EnvFilter::new("debug,i18n_embed=warn"));
14+
15+
// create stdout layer
16+
let stdout_log = tracing_subscriber::fmt::layer().compact().with_writer(std::io::stdout);
17+
18+
// create just a file appender, without rolling
19+
let file_appender = tracing_appender::rolling::never(
20+
utils::fix_path("~/.config/cachyos/cachyos-hello"),
21+
"cachyos-hello.log",
22+
);
23+
24+
let (non_blocking, _guard) = tracing_appender::non_blocking(file_appender);
25+
let file_log =
26+
tracing_subscriber::fmt::layer().compact().with_ansi(false).with_writer(non_blocking);
27+
28+
tracing_subscriber::registry()
29+
.with(file_log)
30+
.with(stdout_log)
31+
.with(subscriber_env_filter)
32+
.init();
33+
34+
_guard
35+
}

0 commit comments

Comments
 (0)