初步添加了标定支持,需要完善和测试

This commit is contained in:
lennlouisgeek
2026-04-07 01:46:37 +08:00
parent aeb17f194c
commit 770d713d03
19 changed files with 1599 additions and 489 deletions

View File

@@ -1,12 +1,40 @@
use fern::{Dispatch, colors::{Color, ColoredLevelConfig}};
use log::{debug};
use std::fs;
use std::path::PathBuf;
use std::time::SystemTime;
fn resolve_log_dir() -> PathBuf {
if let Some(override_dir) = std::env::var_os("JE_SKIN_LOG_DIR") {
return PathBuf::from(override_dir);
}
if cfg!(target_os = "windows") {
if let Some(local_app_data) = std::env::var_os("LOCALAPPDATA") {
return PathBuf::from(local_app_data).join("JE-Skin").join("logs");
}
}
std::env::temp_dir().join("JE-Skin").join("logs")
}
fn ensure_log_dir() -> PathBuf {
let preferred = resolve_log_dir();
if fs::create_dir_all(&preferred).is_ok() {
return preferred;
}
let fallback = std::env::temp_dir().join("JE-Skin").join("logs");
let _ = fs::create_dir_all(&fallback);
fallback
}
pub fn setup_logger() {
let colors_line = ColoredLevelConfig::new()
.error(Color::Red)
.warn(Color::Yellow)
.info(Color::Green)
.debug(Color::White)
.debug(Color::BrightBlue)
.trace(Color::BrightBlack);
let colors_level = colors_line.info(Color::Green);
@@ -38,6 +66,9 @@ pub fn setup_logger() {
// .apply()
// .unwrap();
let log_dir = ensure_log_dir();
let log_file_base = log_dir.join("program.log");
let file_config = fern::Dispatch::new()
.format(move |out, message, record| {
out.finish(
@@ -51,7 +82,7 @@ pub fn setup_logger() {
);
})
.level(level)
.chain(fern::DateBased::new("program.log", "%Y-%m-%d"));
.chain(fern::DateBased::new(log_file_base, "%Y-%m-%d"));
Dispatch::new()
.level(log::LevelFilter::Debug)