Skip to content

Commit

Permalink
👷 logger: use tracing crate for logging spans
Browse files Browse the repository at this point in the history
  • Loading branch information
vnepogodin committed Jan 4, 2025
1 parent 3435edb commit dbb80bb
Show file tree
Hide file tree
Showing 5 changed files with 239 additions and 17 deletions.
193 changes: 188 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ reqwest = { version = "0.12", features = ["blocking", "json"] }
unic-langid = "0.9"
phf = { version = "0.11", features = ["macros"], default-features = false }
chwd = { git = "https://github.com/CachyOS/chwd", rev = "3b288ba0d86b1d078057eb7f3d50b562959fd17a", version = "1.11.0" }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tracing-appender = "0.2"

[build-dependencies]
anyhow = "1"
Expand Down
35 changes: 35 additions & 0 deletions src/logger.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
use crate::utils;

use tracing_appender::non_blocking::WorkerGuard;
use tracing_subscriber::prelude::*;
use tracing_subscriber::EnvFilter;

pub fn setup_logger() -> WorkerGuard {
// set log level from RUST_LOG env var
let env_filter = EnvFilter::try_from_default_env();

// create subscriber env filter
let subscriber_env_filter =
env_filter.unwrap_or_else(|_| EnvFilter::new("debug,i18n_embed=warn"));

// create stdout layer
let stdout_log = tracing_subscriber::fmt::layer().compact().with_writer(std::io::stdout);

// create just a file appender, without rolling
let file_appender = tracing_appender::rolling::never(
utils::fix_path("~/.config/cachyos/cachyos-hello"),
"cachyos-hello.log",
);

let (non_blocking, _guard) = tracing_appender::non_blocking(file_appender);
let file_log =
tracing_subscriber::fmt::layer().compact().with_ansi(false).with_writer(non_blocking);

tracing_subscriber::registry()
.with(file_log)
.with(stdout_log)
.with(subscriber_env_filter)
.init();

_guard
}
Loading

0 comments on commit dbb80bb

Please sign in to comment.