From 30cc50aa7004ea0a1b055bead3a1208dd0f7f89c Mon Sep 17 00:00:00 2001 From: pjh456 <147148383@qq.com> Date: Sat, 26 Sep 2026 11:42:45 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20OXIDE=5FLOG=5FFILE=20=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E5=90=AF=E7=94=A8=E6=8C=89=E6=97=A5=E6=BB=9A?= =?UTF-8?q?=E5=8A=A8=E6=97=A5=E5=BF=97=E6=96=87=E4=BB=B6=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/oxide_kernel/src/kernel/core.rs | 8 +++++++- crates/oxide_test262/src/main.rs | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/crates/oxide_kernel/src/kernel/core.rs b/crates/oxide_kernel/src/kernel/core.rs index 8aa0c7cb..9ee05d02 100644 --- a/crates/oxide_kernel/src/kernel/core.rs +++ b/crates/oxide_kernel/src/kernel/core.rs @@ -3,6 +3,7 @@ //! 重建信号。 use std::num::NonZeroUsize; +use std::path::PathBuf; use std::sync::atomic::{AtomicUsize, Ordering}; use std::sync::Arc; @@ -34,8 +35,13 @@ pub struct KernelCore { impl KernelCore { /// 按配置创建共享核心:初始化日志系统与四个共享 forge(interner/shape/code/prop)。 pub fn new(config: KernelConfig) -> Arc { + // OXIDE_LOG_FILE 指向目录时日志按日滚动落盘该目录(同镜像 stderr),缺省仅 stderr。 + let output = match std::env::var("OXIDE_LOG_FILE") { + Ok(dir) if !dir.is_empty() => oxide_log::Output::File(PathBuf::from(dir)), + _ => oxide_log::Output::Stderr, + }; oxide_log::init(&oxide_log::LogConfig { - output: oxide_log::Output::Stderr, + output, levels: config.log_levels, }); let perm_interner = Arc::new(PermInterner::new()); diff --git a/crates/oxide_test262/src/main.rs b/crates/oxide_test262/src/main.rs index 21e0e4d6..e51ec9bc 100644 --- a/crates/oxide_test262/src/main.rs +++ b/crates/oxide_test262/src/main.rs @@ -95,8 +95,13 @@ fn run_tests() -> bool { } } eprintln!("[LOG] level={log_level:?}"); + // OXIDE_LOG_FILE 指向目录时日志按日滚动落盘该目录(同镜像 stderr),缺省仅 stderr。 + let output = match std::env::var("OXIDE_LOG_FILE") { + Ok(dir) if !dir.is_empty() => Output::File(PathBuf::from(dir)), + _ => Output::Stderr, + }; oxide_log::init(&LogConfig { - output: Output::Stderr, + output, levels: [log_level; SUBSYSTEM_COUNT], });