Refactor logging to use a centralized logging utility across the application (#5277)

- Replaced direct log calls with a new logging macro that includes a logging type for better categorization.
- Updated logging in various modules including `merge.rs`, `mod.rs`, `tun.rs`, `clash.rs`, `profile.rs`, `proxy.rs`, `window.rs`, `lightweight.rs`, `guard.rs`, `autostart.rs`, `dirs.rs`, `dns.rs`, `scheme.rs`, `server.rs`, and `window_manager.rs`.
- Introduced logging types such as `Core`, `Network`, `ProxyMode`, `Window`, `Lightweight`, `Service`, and `File` to enhance log clarity and filtering.
This commit is contained in:
Tunglies
2025-11-01 20:47:01 +08:00
committed by GitHub
parent 50567d9b97
commit fb260fb33d
28 changed files with 473 additions and 210 deletions
+25 -13
View File
@@ -1,20 +1,27 @@
#[cfg(target_os = "macos")]
use crate::{logging, utils::logging::Type};
pub async fn set_public_dns(dns_server: String) {
use crate::{core::handle, utils::dirs};
use crate::utils::logging::Type;
use crate::{core::handle, logging, utils::dirs};
use tauri_plugin_shell::ShellExt;
let app_handle = handle::Handle::app_handle();
log::info!(target: "app", "try to set system dns");
logging!(info, Type::Config, "try to set system dns");
let resource_dir = match dirs::app_resources_dir() {
Ok(dir) => dir,
Err(e) => {
log::error!(target: "app", "Failed to get resource directory: {}", e);
logging!(
error,
Type::Config,
"Failed to get resource directory: {}",
e
);
return;
}
};
let script = resource_dir.join("set_dns.sh");
if !script.exists() {
log::error!(target: "app", "set_dns.sh not found");
logging!(error, Type::Config, "set_dns.sh not found");
return;
}
let script = script.to_string_lossy().into_owned();
@@ -28,14 +35,14 @@ pub async fn set_public_dns(dns_server: String) {
{
Ok(status) => {
if status.success() {
log::info!(target: "app", "set system dns successfully");
logging!(info, Type::Config, "set system dns successfully");
} else {
let code = status.code().unwrap_or(-1);
log::error!(target: "app", "set system dns failed: {code}");
logging!(error, Type::Config, "set system dns failed: {code}");
}
}
Err(err) => {
log::error!(target: "app", "set system dns failed: {err}");
logging!(error, Type::Config, "set system dns failed: {err}");
}
}
}
@@ -45,17 +52,22 @@ pub async fn restore_public_dns() {
use crate::{core::handle, utils::dirs};
use tauri_plugin_shell::ShellExt;
let app_handle = handle::Handle::app_handle();
log::info!(target: "app", "try to unset system dns");
logging!(info, Type::Config, "try to unset system dns");
let resource_dir = match dirs::app_resources_dir() {
Ok(dir) => dir,
Err(e) => {
log::error!(target: "app", "Failed to get resource directory: {}", e);
logging!(
error,
Type::Config,
"Failed to get resource directory: {}",
e
);
return;
}
};
let script = resource_dir.join("unset_dns.sh");
if !script.exists() {
log::error!(target: "app", "unset_dns.sh not found");
logging!(error, Type::Config, "unset_dns.sh not found");
return;
}
let script = script.to_string_lossy().into_owned();
@@ -69,14 +81,14 @@ pub async fn restore_public_dns() {
{
Ok(status) => {
if status.success() {
log::info!(target: "app", "unset system dns successfully");
logging!(info, Type::Config, "unset system dns successfully");
} else {
let code = status.code().unwrap_or(-1);
log::error!(target: "app", "unset system dns failed: {code}");
logging!(error, Type::Config, "unset system dns failed: {code}");
}
}
Err(err) => {
log::error!(target: "app", "unset system dns failed: {err}");
logging!(error, Type::Config, "unset system dns failed: {err}");
}
}
}
+3 -3
View File
@@ -11,7 +11,7 @@ use crate::{
};
pub(super) async fn resolve_scheme(param: &str) -> Result<()> {
log::info!(target:"app", "received deep link: {param}");
logging!(info, Type::Config, "received deep link: {param}");
let param_str = if param.starts_with("[") && param.len() > 4 {
param
@@ -50,8 +50,8 @@ pub(super) async fn resolve_scheme(param: &str) -> Result<()> {
match url_param {
Some(ref url) => {
log::info!(target:"app", "decoded subscription url: {url}");
match PrfItem::from_url(url, name, None, None).await {
logging!(info, Type::Config, "decoded subscription url: {url}");
match PrfItem::from_url(url.as_ref(), name, None, None).await {
Ok(mut item) => {
let uid = match item.uid.clone() {
Some(uid) => uid,