跳到正文

Async Logger

作者:decce6

异步日志记录与高效过滤——提升性能,助你保持日志整洁

收藏

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

Async Logger 是一个让日志记录操作异步化的 Minecraft 模组。

在原版中,日志记录器不是异步的。这意味着实际的日志记录操作(包括 I/O 操作)都发生在日志线程上。本模组将日志记录改为异步,以获得更好的性能。

当记录大量消息和/或启用调试日志记录时(Forge / NeoForge 默认开启),这一点尤其有用。

基准测试

| 项目 | 原版 | AsyncLogger |
|———————————-|———–|————-|
| 简单消息 (10k) | 6146.1ms | 141.2ms |
| 带占位符的消息 (10k) | 6413.2ms | 96.6ms |
| 带 Throwable 的消息 (1.5k) | 19572.4ms | 9.0ms |

你可以在配置中启用 testPerformance 来自己进行这些测试。启用此选项后,模组会在设置异步日志记录器之前和之后分别记录大量消息。你可以在日志中看到测试结果。

过滤

从 2.0.0 版本开始,AsyncLogger 支持日志过滤。过滤发生在专用的异步日志记录器线程上,确保调用方没有额外开销。

要使用,只需在配置中将 filtering.enabled 设置为 true,并编辑一个或多个过滤器。支持按日志记录器名称、级别和消息(匹配子字符串或正则表达式)进行过滤。

技术细节

  • 使用了异步日志记录器,而非异步附加器。前者更新、更快,且分配率更低。
  • 异步日志记录器需要 LMAX Disruptor,一个无锁的线程间通信库。当系统中不存在该库时,模组会将其加载到系统类加载器上。本模组根据 Apache-2.0 许可证重新分发 LMAX Disruptor。
  • 配置文件允许轻松控制一些 log4j2 设置。
  • System.out 和 System.err 可以重定向到日志记录器。

常见问题

Async Logger 支持哪些 Minecraft 版本?

Async Logger 支持 Minecraft Java 版 1.0–26.3,共 93 个版本,可用的加载器:Fabric / Forge / NeoForge / Quilt。下载时注意选择和你游戏版本一致的文件。

Async Logger 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / Forge / NeoForge / Quilt,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端 / 服务端。

评论

登录后评论和评分

decce6 的其他作品

查看全部 →