初步添加了标定支持,需要完善和测试
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user