mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-01-29 00:35:38 +08:00
refactor: enhance logging system with NoExternModule for better log filtering
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
cfg_if::cfg_if! {
|
||||
if #[cfg(not(feature = "tauri-dev"))] {
|
||||
use crate::utils::logging::{console_colored_format, file_format};
|
||||
use crate::utils::logging::{console_colored_format, file_format, NoExternModule};
|
||||
use flexi_logger::{Cleanup, Criterion, Duplicate, FileSpec, LogSpecification, Logger};
|
||||
use log::LevelFilter;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,9 +23,6 @@ use tokio::fs::DirEntry;
|
||||
#[cfg(not(feature = "tauri-dev"))]
|
||||
pub async fn init_logger() -> Result<()> {
|
||||
let log_level = Config::verge().await.latest_ref().get_log_level();
|
||||
if log_level == LevelFilter::Off {
|
||||
return Err(anyhow::anyhow!("logging is disabled"));
|
||||
}
|
||||
|
||||
let log_dir = dirs::app_logs_dir()?;
|
||||
let logger = Logger::with(LogSpecification::from(log_level))
|
||||
@@ -43,7 +39,8 @@ pub async fn init_logger() -> Result<()> {
|
||||
},
|
||||
// TODO 提供前端设置最大保留文件数量
|
||||
Cleanup::Never,
|
||||
);
|
||||
)
|
||||
.filter(Box::new(NoExternModule));
|
||||
|
||||
let _handle = logger.start()?;
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
use flexi_logger::filter::LogLineFilter;
|
||||
|
||||
cfg_if::cfg_if! {
|
||||
if #[cfg(feature = "tauri-dev")] {
|
||||
use std::fmt;
|
||||
@@ -171,6 +173,27 @@ macro_rules! logging_error {
|
||||
};
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "tauri-dev"))]
|
||||
static IGNORE_MODULES: &[&str] = &["tauri", "wry"];
|
||||
#[cfg(not(feature = "tauri-dev"))]
|
||||
pub struct NoExternModule;
|
||||
#[cfg(not(feature = "tauri-dev"))]
|
||||
impl LogLineFilter for NoExternModule {
|
||||
fn write(
|
||||
&self,
|
||||
now: &mut DeferredNow,
|
||||
record: &Record,
|
||||
log_line_writer: &dyn flexi_logger::filter::LogLineWriter,
|
||||
) -> std::io::Result<()> {
|
||||
let module_path = record.module_path().unwrap_or_default();
|
||||
if IGNORE_MODULES.iter().any(|m| module_path.starts_with(m)) {
|
||||
Ok(())
|
||||
} else {
|
||||
log_line_writer.write(now, record)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "tauri-dev"))]
|
||||
pub fn get_log_level(log_level: &LevelFilter) -> String {
|
||||
#[cfg(feature = "verge-dev")]
|
||||
|
||||
Reference in New Issue
Block a user