From fdd7b1482530fbc31f59097b297b5c907eb59806 Mon Sep 17 00:00:00 2001 From: houseme Date: Wed, 9 Apr 2025 21:52:30 +0800 Subject: [PATCH] create get default log path func --- crates/obs/examples/server.rs | 2 +- crates/obs/src/config.rs | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/crates/obs/examples/server.rs b/crates/obs/examples/server.rs index 0af2fcd02..55977b10c 100644 --- a/crates/obs/examples/server.rs +++ b/crates/obs/examples/server.rs @@ -7,7 +7,7 @@ use tracing_core::Level; #[tokio::main] async fn main() { - let obs_conf = Some("packages/obs/examples/config.toml".to_string()); + let obs_conf = Some("crates/obs/examples/config.toml".to_string()); let config = load_config(obs_conf); let (_logger, _guard) = init_obs(config.clone()).await; let span = tracing::span!(Level::INFO, "main"); diff --git a/crates/obs/src/config.rs b/crates/obs/src/config.rs index be20c5b0b..4106834e3 100644 --- a/crates/obs/src/config.rs +++ b/crates/obs/src/config.rs @@ -67,11 +67,24 @@ pub struct FileSinkConfig { pub flush_threshold: Option, // Refresh threshold, default 100 logs } +impl FileSinkConfig { + pub fn get_default_log_path() -> String { + let temp_dir = env::temp_dir().join("rustfs").join("logs"); + + if let Err(e) = std::fs::create_dir_all(&temp_dir) { + eprintln!("Failed to create log directory: {}", e); + return "logs/app.log".to_string(); + } + + temp_dir.join("app.log").to_str().unwrap_or("logs/app.log").to_string() + } +} + impl Default for FileSinkConfig { fn default() -> Self { FileSinkConfig { enabled: true, - path: "logs/app.log".to_string(), + path: Self::get_default_log_path(), buffer_size: Some(8192), flush_interval_ms: Some(1000), flush_threshold: Some(100),