截图
介绍
Log Deduplicator
如果你曾打开控制台,看到同一条错误重复出现数千次,那么这款模组就是为你准备的。Log Deduplicator 会检测重复的日志消息,并在达到可配置的阈值后将其抑制,让控制台保持清晰易读,也避免日志文件膨胀到数百 MB。
对于大型整合包来说,这款模组尤其有用:有问题的模组或配置错误的环境可能会疯狂刷屏,造成卡顿和延迟。减少日志刷屏,意味着更少的 I/O、更少用于格式化和写入日志行的 CPU 时间,整体游戏体验也会更流畅。
消息被抑制时,你仍会看到类似 [suppressed 482 times over 12.3s] 的摘要,因此不会有内容在毫无提示的情况下丢失。
工作原理
该模组会拦截所有级别的日志消息:Log4j、java.util.logging 和 System.out/err。它能识别出 Entity at (1.0, 2.0, 3.0) 和 Entity at (50.0, 64.0, -20.0) 这类消息实际上只是数字不同、内容相同的消息,因此会将它们归为一组,而不是把每条都视为独立消息。
它还会清理堆栈跟踪,移除重复的帧。这样,同一个异常反复记录时,你就能看到有用的信息,而不会被大量冗余内容淹没。
性能
与依赖正则表达式匹配模式的同类模组不同,Log Deduplicator 使用专为 Minecraft 日志格式编写的单遍扫描器。它只需遍历每条消息一次,就能原生处理坐标、UUID、内存地址和计时值,无需创建任何正则 Matcher 对象或中间字符串。基准测试显示,在消息规范化方面,它的速度约为正则表达式方案的 10 倍;在完整的去重流程中,端到端速度约快 2 倍。该模组还使用无锁并发缓存,而不是同步映射,因此即使服务器有多个线程产生大量日志,也不会因此成为性能瓶颈。
配置
所有设置都可以通过游戏内界面(需要 YACL)配置,也可以编辑 config/log_deduplicator.toml。
- 按日志级别设置阈值 – 设置触发抑制前允许出现的重复次数(默认:错误为 5 次,信息为 20 次)
- 时间窗口 – 控制消息在计数重置前归为一组的时长
- 模糊匹配 – 将仅数字、坐标、UUID 或计时值不同的消息归为一组
- 规范化 – 切换是否在比较前规范化坐标、UUID、内存地址和计时值
- 日志记录器筛选 – 将特定日志记录器加入白名单或黑名单
- 系统流去重 – 对 System.out/err 去重,并检测堆栈跟踪中的多行内容
- 堆栈跟踪清理 – 移除重复帧,可选择剔除框架内部内容并限制最大深度
支持的平台
- NeoForge 1.21.1
- Fabric 1.21.1
欢迎在 Discord上获取支持
如果你想支持我和我的模组开发,我推荐你试试 BisectHosting。新客户使用代码 “project8gbderam”,购买游戏服务器首月可享 75 折优惠。他们提供全天候支持和闪电般的响应速度,让你放心托付,并为你的游戏需求提供出色的帮助。 https://www.bisecthosting.com/project8gbderam

常见问题
Log Deduplicator 支持哪些 Minecraft 版本?
Log Deduplicator 支持 Minecraft Java 版 1.21.1,可用的加载器:Fabric / NeoForge。下载时注意选择和你游戏版本一致的文件。
Log Deduplicator 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。
Project8gbDeRam 的其他作品
查看全部 →Leaderboards
恢复了 FTB Utilities 的经典排行榜,现在功能更丰富!
Replication RS2 Bridge
为 Replication 和精致存储 2 添加联动。
Chisel Modern
建筑党的最佳伙伴。支持现代版本!
MooFluids Modern
会流体的牛!
评论
登录后评论和评分