mirror of
https://github.com/yuezk/GlobalProtect-openconnect.git
synced 2025-05-20 07:26:58 -04:00
Release 2.4.1
This commit is contained in:
@@ -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<()> {
|
||||
|
Reference in New Issue
Block a user