From 5784c2440a582e5623f2859c7e3690543cb6bf15 Mon Sep 17 00:00:00 2001 From: Victoria Fischer Date: Thu, 11 Jun 2026 21:40:20 +0200 Subject: [PATCH] main: add a separate logfile to the logger --- src/main.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main.rs b/src/main.rs index fa8756c..32b3837 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,4 @@ -use std::sync::Arc; +use std::sync::{Arc, Mutex}; use async_openai::types::chat::ChatCompletionRequestMessage; use serde::{Deserialize, Serialize}; @@ -66,9 +66,9 @@ impl SaveData { } } -struct SysMessageLogger(Arc>); +struct SysMessageLogger(Arc>, Mutex); -impl log::Log for SysMessageLogger { +impl log::Log for SysMessageLogger { fn enabled(&self, _metadata: &log::Metadata) -> bool { true } @@ -76,7 +76,9 @@ impl log::Log for SysMessageLogger { fn flush(&self) {} fn log(&self, record: &log::Record) { - self.0.send(format!("{}", record.args())).unwrap(); + let msg = format!("{}", record.args()); + write!(self.1.lock().unwrap(), "{}\n", msg).unwrap(); + self.0.send(msg).unwrap(); } } @@ -95,10 +97,10 @@ async fn main() { let (sys_message_sink, sys_message_src) = tokio::sync::mpsc::unbounded_channel(); - static LOGGER: StaticCell = StaticCell::new(); - let logger = LOGGER.init(SysMessageLogger(Arc::new(sys_message_sink))); + static LOGGER: StaticCell> = StaticCell::new(); + let logger = LOGGER.init(SysMessageLogger(Arc::new(sys_message_sink), Mutex::new(std::fs::File::create("out.log").unwrap()))); log::set_logger(logger).unwrap(); - log::set_max_level(log::LevelFilter::Info); + log::set_max_level(log::LevelFilter::Debug); dotenv::dotenv().ok();