Release 2.4.1

This commit is contained in:
Kevin Yue
2025-01-09 21:39:22 +08:00
parent d37ccafdc2
commit ec85e857bc
5 changed files with 36 additions and 41 deletions

View File

@@ -2,40 +2,35 @@ use std::sync::OnceLock;
use anyhow::bail;
use env_logger::Logger;
use log::Level;
use log::{warn, Level};
use log_reload::{ReloadHandle, ReloadLog};
static LOG_HANDLE: OnceLock<ReloadHandle<log_reload::LevelFilter<Logger>>> = OnceLock::new();
pub fn init(level: Level) -> anyhow::Result<()> {
pub fn init(level: Level) {
// Initialize the env_logger and global max level to trace, the logs will be
// filtered by the outer logger
let logger = env_logger::builder().filter_level(log::LevelFilter::Trace).build();
init_with_logger(level, logger)?;
Ok(())
init_with_logger(level, logger);
}
pub fn init_with_logger(level: Level, logger: Logger) -> anyhow::Result<()> {
pub fn init_with_logger(level: Level, logger: Logger) {
if let Some(_) = LOG_HANDLE.get() {
bail!("Logger already initialized")
} else {
log::set_max_level(log::LevelFilter::Trace);
// Create a new logger that will filter the logs based on the max level
let level_filter_logger = log_reload::LevelFilter::new(level, logger);
let reload_log = ReloadLog::new(level_filter_logger);
let handle = reload_log.handle();
// Register the logger to be used by the log crate
log::set_boxed_logger(Box::new(reload_log))?;
LOG_HANDLE
.set(handle)
.map_err(|_| anyhow::anyhow!("Failed to set the logger"))?;
warn!("Logger already initialized");
return;
}
Ok(())
log::set_max_level(log::LevelFilter::Trace);
// Create a new logger that will filter the logs based on the max level
let level_filter_logger = log_reload::LevelFilter::new(level, logger);
let reload_log = ReloadLog::new(level_filter_logger);
let handle = reload_log.handle();
// Register the logger to be used by the log crate
let _ = log::set_boxed_logger(Box::new(reload_log));
let _ = LOG_HANDLE.set(handle);
}
pub fn set_max_level(level: Level) -> anyhow::Result<()> {