From 83e765f358a9f81ce93159836fe2c594ff9d914c Mon Sep 17 00:00:00 2001 From: MythEclipse Date: Thu, 31 Jul 2025 15:15:55 +0700 Subject: [PATCH] feat: add logger module with initialization function using tracing and dotenvy --- imphnen-utils/src/lib.rs | 2 ++ imphnen-utils/src/logger.rs | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 imphnen-utils/src/logger.rs diff --git a/imphnen-utils/src/lib.rs b/imphnen-utils/src/lib.rs index a8b4713..8ba084c 100644 --- a/imphnen-utils/src/lib.rs +++ b/imphnen-utils/src/lib.rs @@ -1,3 +1,4 @@ +mod logger; pub mod bind_filter; pub mod extract_email; pub mod generate_date; @@ -10,6 +11,7 @@ pub mod response_format; pub mod serde_helpers; pub mod validator; +pub use logger::init_logger; pub use bind_filter::*; pub use extract_email::*; pub use generate_date::*; diff --git a/imphnen-utils/src/logger.rs b/imphnen-utils/src/logger.rs new file mode 100644 index 0000000..4ef1d44 --- /dev/null +++ b/imphnen-utils/src/logger.rs @@ -0,0 +1,20 @@ +//! Logger initialization using tracing, tracing-subscriber, and dotenvy. +use std::env; +use dotenvy::dotenv; +use tracing_subscriber::{EnvFilter, fmt}; + +/// Initializes the logger using tracing and tracing-subscriber. +/// Loads environment variables from `.env` and sets log level from `RUST_LOG`. +pub fn init_logger() { + // Load .env file if present + dotenv().ok(); + + // Set up the tracing subscriber with EnvFilter from RUST_LOG + let filter = EnvFilter::try_from_default_env() + .or_else(|_| EnvFilter::try_new("warn")) + .unwrap(); + + fmt() + .with_env_filter(filter) + .init(); +}