Server Log Filter
Hide noisy server console lines from the MCDR console with configurable regex rules, without touching the server's own log file.
management
Installation command
!!MCDR plugin install server_log_filterAuthor
Repository
Synced at
...
Last update
...
Latest version
Total downloads
136
Back to catalogue
ServerLogFilter-v1.4.2.mcdr
Version
1.4.2
Date
October 14, 2026
Size
24.45 KiB
Downloads
7
MD5
8a1a5fcbc0ffb334c3626c4864286d5fSHA256
4d6afca4c26133332327a174a6acc1444340f58a3f4a045f472a8f13e9d234fcDependencies
MCDR Plugin Dependencies
| Plugin ID | Requirement |
|---|---|
| mcdreforged | >=2.15.0 |
Python Package Requirements
| Python Package | Requirement |
|---|---|
none |
Release notes
Changelog
本插件所有值得一提的变更都记录在此。插件包内也附带同一份 CHANGELOG.md。
格式参考 Keep a Changelog,版本号遵循 语义化版本。
本文件只保留最新一个版本的条目,更早版本的记录见 GitHub Releases。
[1.4.2] - 2026-10-14
修复
- 一行命中多条规则时,每条规则都计数。 以前只给第一条计数,被它遮蔽的那条命中数永远是 0,连续几轮之后会被报成「从未命中」并建议删除——而它其实一直在正常工作,删掉后对应日志会立刻重新刷屏。
!!logfilter test一直说它会命中,两屏结论互相矛盾;现在两个口径一致。 - 正则安全探测不再有量级盲区。 探测串原来固定 22 字符,
(a|aa)+$这类只在更长输入上爆炸的模式能通过检查,而它在 60 字符以上的真实日志行上会让 MCDR 主线程卡死(filter_server_info跑在主线程)。现在先用两档长度的增长比判断,再用接近真实行长的长档做绝对耗时兜底。 on_server_startup补上配置判空。 MCDR 低于 2.15.0 时插件会停用并提示升级,但此后每次开服完成仍会抛一次AttributeError(提示与报错自相矛盾)。- 类型写坏的配置也会被备份。 以前只有「JSON 语法错 / 顶层不是对象 / 不是 UTF-8」会备份成
config.json.old并播报;合法 JSON 但字段类型写错(例如stale_rule_threshold填成字符串)会被 MCDR 用默认值覆盖,用户写的patterns就此消失且没有备份。 - 未走到启动完成的周期不再让已修好的规则被重复告警。 到期提醒的判据加上「本轮该规则一次都没命中」,文案从「连续 N 次零命中」改为「从未命中」。
state.json损坏时备份并说明(以前会被静默重置,命中历史无声消失);_state的读改写加锁。!!logfilter reload失败时给可读回复(此前只有一条 traceback);!!lf test只粘了行前缀时不再把带前缀的原文当正文,^锚定的规则不会再被误报成不命中。- 探测预算被钳制时会 warning 一次(下限 1 ms、上限 2000 ms)。
新增
- 状态页新增一行计数口径说明(一次隐去可能来自多条规则,两者数字不必相加)。
- 「匹配一切」的判定改用补集判据,
^$这类只匹配空行的规则也会被警告。
变更
pattern_probe_timeout_ms的语义在 README 里写明:它只影响插件加载与!!logfilter reload的耗时,与逐行过滤开销无关;这个检查是启发式,不是形式化保证。- 从写坏的配置原文里抢救
language时同时接受单引号写法。 - 版本号 1.4.1 → 1.4.2。
开发
- CI 新增三个作业:lint(ruff 0.17.0,规则见根目录
ruff.toml)、跨版本矩阵(真实 MCDR 2.15.0 / 2.15.7 / 2.16.0)、产物自检(tools/check_artifact.py);单元测试矩阵新增 Python 3.9(该档装 pytest 8.3.5,因为 pytest 9 需要 3.10)。 - 打包器换行归一:CRLF 工作区与 LF 工作区打出的字节相同,包内
CHANGELOG.md只保留最新一节且版本号必须与元数据一致。 - 变异检查改造:隔离字节码缓存、区分
failed与error、打印变异后文件的 sha256、失败时保留临时目录。 - 清掉测试里 13 处歧义变量名与 1 处错位的 import,
ruff check .归零。
验证
- 测试 378 项全部通过(单元 340 + 真实 MCDR 端到端 37)。
- 变异检查 58 条全部被抓(
tools/mutation_check.py)。 - 真实 MCDR 2.15.0 / 2.15.7 / 2.16.0 三版本矩阵逐项一致,无 traceback。
- 产物可复现、换行归一、包内无注释与 docstring、包内代码可编译。