🟢 [L2] 词边界检测允许数字和下划线,ERROR123 被错误识别 #28

Closed
opened 2026-06-03 13:54:28 +08:00 by dailz · 1 comment
Owner

文件: core/parser/level.rs:106-110
分类: 解析边界

问题: 仅检查 is_ascii_alphabetic 作为边界,ERROR123INFO_fooWARN2 被错误识别为日志级别。

建议修复: 使用 is_ascii_alphanumeric() 或更严格的 token 边界规则。

**文件**: `core/parser/level.rs:106-110` **分类**: 解析边界 **问题**: 仅检查 `is_ascii_alphabetic` 作为边界,`ERROR123`、`INFO_foo`、`WARN2` 被错误识别为日志级别。 **建议修复**: 使用 `is_ascii_alphanumeric()` 或更严格的 token 边界规则。
dailz added the area/parserseverity/lowbug labels 2026-06-03 13:54:28 +08:00
dailz closed this issue 2026-06-11 14:28:20 +08:00
Author
Owner

已修复,提交 19a3b87。

改动: crates/core/src/parser/level.rs

  • 新增 is_ident_char(b) 辅助函数,将 is_ascii_alphabetic() 边界检查扩展为 is_ascii_alphanumeric() || b == '_'
  • 修复 ERROR123INFO_fooWARN2DBG_value 等被错误识别为日志级别的问题
  • 新增 5 个测试覆盖 trailing digits、underscore、leading digits/underscore、valid suffixes、camelCase regression

20 tests 全部通过,无回归。

已修复,提交 19a3b87。 **改动**: `crates/core/src/parser/level.rs` - 新增 `is_ident_char(b)` 辅助函数,将 `is_ascii_alphabetic()` 边界检查扩展为 `is_ascii_alphanumeric() || b == '_'` - 修复 `ERROR123`、`INFO_foo`、`WARN2`、`DBG_value` 等被错误识别为日志级别的问题 - 新增 5 个测试覆盖 trailing digits、underscore、leading digits/underscore、valid suffixes、camelCase regression 20 tests 全部通过,无回归。
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dailz/logViewer#28