From e21e73f0b47630f1e670c7a28c0985ac0e146b5e Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Tue, 23 Sep 2025 09:02:00 +0300 Subject: [PATCH] refactor(telemetry): make bunyan as a feature --- Cargo.lock | 1 - Cargo.toml | 8 +++++--- src/telemetry.rs | 23 ++++++++++++++++++++--- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c896e75..f9e85b3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1754,7 +1754,6 @@ dependencies = [ "tracing", "tracing-appender", "tracing-bunyan-formatter", - "tracing-log 0.2.0", "tracing-subscriber", "url", ] diff --git a/Cargo.toml b/Cargo.toml index 9f8ce0c..136d03f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ edition = "2024" async-trait = "0.1" color-eyre = "0.6" dotenv = "0.15" -futures = "0.3.31" +futures = "0.3" infer = "0.19" rand = "0.9" regex = "1.11" @@ -26,11 +26,13 @@ tokio = { version = "1", features = [ ] } tracing = "0.1" tracing-appender = "0.2" -tracing-bunyan-formatter = { version = "0.3", default-features = false } -tracing-log = "0.2.0" +tracing-bunyan-formatter = { version = "0.3", default-features = false, optional = true } tracing-subscriber = { version = "0.3", features = ["registry", "env-filter"] } url = "2.5" +[features] +bunyan = ["tracing-bunyan-formatter"] + [lints.clippy] pedantic = "warn" nursery = "warn" diff --git a/src/telemetry.rs b/src/telemetry.rs index c6da987..a8868b7 100644 --- a/src/telemetry.rs +++ b/src/telemetry.rs @@ -1,14 +1,31 @@ +#[cfg(feature = "bunyan")] use tracing_bunyan_formatter::{BunyanFormattingLayer, JsonStorageLayer}; use tracing_subscriber::{EnvFilter, layer::SubscriberExt, util::SubscriberInitExt}; /// Initialise tracing with bunyan-style JSON output. +#[cfg(feature = "bunyan")] pub fn setup_logger() { - let env_filter = EnvFilter::try_from_default_env().unwrap_or_else(|_| "info".into()); + let env_filter = create_env_filter(); let formatter = BunyanFormattingLayer::new("tg-relay-rs".into(), std::io::stdout); tracing_subscriber::registry() .with(env_filter) - .with(JsonStorageLayer) .with(formatter) - .init(); + .with(JsonStorageLayer) + .init() +} + +#[cfg(not(feature = "bunyan"))] +pub fn setup_logger() { + let env_filter = create_env_filter(); + let formatter = tracing_subscriber::fmt::Layer::default(); + + tracing_subscriber::registry() + .with(env_filter) + .with(formatter) + .init() +} + +fn create_env_filter() -> EnvFilter { + EnvFilter::try_from_default_env().unwrap_or_else(|_| "info".into()) }