🟡 [M11] LogLevel::from_str 不 trim 空白 #21
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
文件:
core/types.rs:73-91分类: 解析
问题:
LogLevel::from_str不 trim 空白," INFO "或"ERROR\n"被解析为Unknown。建议修复:
match s.trim().to_uppercase().as_str()。修复方案
根因:
LogLevel::from_str(crates/core/src/types.rs) 使用s.to_uppercase()直接匹配,未对输入做trim()处理。JSON 日志路径中 serde 保留字段原始值(含前后空白),导致" WARN "被错误归类为Unknown(" WARN ")。修复: 在
FromStr实现入口添加s.trim(),同时对Unknown变体存储 trimmed 后的值。改动文件:
crates/core/src/types.rs—from_str加trim(),更新注释crates/core/src/parser/json.rs— 新增回归测试新增测试:
test_from_str_whitespace_trimmed— 前后空白不影响已知级别解析test_from_str_whitespace_unknown_trimmed— Unknown 存 trimmed 值、纯空白→Unknown("")、内部空白不误匹配test_level_whitespace_in_json— JSON{"level":" WARN "}端到端验证验证: workspace 全量测试 330 passed, 0 failed
提交:
ef18897