Skip to content

fix: logging.level 与 launch.separate_window 配置不生效 - #10

Merged
Minecraft269 merged 1 commit into
mainfrom
worktree-ccl-config-fix
Aug 8, 2026
Merged

fix: logging.level 与 launch.separate_window 配置不生效#10
Minecraft269 merged 1 commit into
mainfrom
worktree-ccl-config-fix

Conversation

@Minecraft269

Copy link
Copy Markdown
Owner

问题

用户报告: 修改 config/config.toml 中的 logging.levellaunch.separate_window 不生效。

根因

  1. logging.level 不生效: init_logging 使用 EnvFilter::new()pushVec<Box<dyn Layer>> 中。EnvFilter 作为 Vec 中的兄弟 layer 无法过滤其他 fmt layer —— 每个 fmt layer 按自己的默认 LevelFilter(INFO)输出,导致配置的 trace/debug 级别无效。

  2. launch.separate_window 不生效: execute_once 只读取 cli.launch.separate_window(CLI 参数),完全忽略 config.launch.separate_window。配置文件里设为 true 不生效。

修复

文件 变更
src/logging/init.rs EnvFilterLevelFilter::from_str(&resolve_level(...)),通过 .with_filter(level_filter) 应用到每个 fmt layer(console + file)
src/launch/execute.rs separate_window: cli.launch.separate_window || config.launch.separate_window,CLI 与 config 合并(CLI 优先);增加 spawn debug 日志
src/main.rs 配置加载后输出 debug 日志(backend/level/separate_window),便于诊断
src/config/loader.rs 新增测试 logging_and_launch_fields_parsed 覆盖两个字段的 TOML 解析

验证

  • cargo build 通过
  • cargo test: 95 passed(含新增测试)
  • cargo fmt --all -- --check 干净
  • cargo clippy --all-targets --all-features: 零警告

隐私

提交前扫描: 仅 4 个 src/ 源码文件,config/logs/ 均未被 git 跟踪,无私人文件混入。

- logging: 用 LevelFilter 替换 EnvFilter, 通过 with_filter 应用到每个 fmt layer
  (EnvFilter 作为 Vec layer 成员无法过滤兄弟 fmt layer, 导致 level 配置无效)
- launch: separate_window 合并 config.launch.separate_window 与 CLI 参数
- main: 配置加载后输出 debug 日志便于诊断
- test: 新增 logging_and_launch_fields_parsed 覆盖两个字段解析
@Minecraft269
Minecraft269 merged commit af54e76 into main Aug 8, 2026
12 checks passed
@Minecraft269
Minecraft269 deleted the worktree-ccl-config-fix branch August 8, 2026 13:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant