random_image_server/
logging.rs

1use std::io::Write;
2
3use anyhow::{Result, anyhow};
4use log::LevelFilter;
5
6/// Initialize the global logger based on configuration
7///
8/// # Errors
9/// Returns an error if the logger cannot be initialized.
10pub fn init_logging(level_filter: LevelFilter) -> Result<()> {
11    // Simple stdout-only logging using env_logger
12    env_logger::Builder::new()
13        .filter_level(level_filter)
14        .format(|buf, record| {
15            writeln!(
16                buf,
17                "{} [{}] [{}:{}] {}",
18                chrono::Utc::now().format("%Y-%m-%d %H:%M:%S%.3f"),
19                record.level(),
20                record.file().unwrap_or("unknown"),
21                record.line().unwrap_or(0),
22                record.args()
23            )
24        })
25        .try_init()
26        .map_err(|e| anyhow!("Failed to initialize stdout logger: {e}"))?;
27
28    log::info!("Logging initialized: level={level_filter:?}");
29
30    Ok(())
31}