余烬的日志筛选

余烬的日志筛选

允许你过滤日志中的任何内容

LogFilter

一个高度可配置的 Minecraft 日志过滤模组。抑制杂乱的日志消息,突出显示重要内容,保持控制台整洁,所有规则支持热重载。

维基:https://tysontheember.dev/log-filter/intro/

功能

  • 正则消息过滤:使用正则表达式按内容匹配并抑制日志消息
  • 记录器名称过滤:按精确记录器名称或正则模式过滤,支持层级匹配
  • 日志级别过滤:针对特定日志级别(DEBUG、INFO、WARN、ERROR)过滤
  • 过滤操作:每条规则支持 DENY(抑制)、ALLOW(强制显示)或 NEUTRAL(透传)
  • 逐条启用/禁用:切换单个规则而无需删除
  • 热重载:编辑 logfilter.json 后更改立即生效,无需重启
  • 包含默认规则:附带预置(已禁用)规则以应对常见日志刷屏

配置

LogFilter 将其配置文件存储在 Minecraft config 目录下的 logfilter.json 中。首次启动时会自动使用合理默认值创建该文件。

示例配置

{
  "configVersion": 1,
  "enabled": true,
  "rules": [
    {
      "name": "抑制 OpenAL 刷屏",
      "enabled": true,
      "type": "MESSAGE_REGEX",
      "pattern": "(?i)openal",
      "action": "DENY",
      "level": null
    },
    {
      "name": "阻止服务器层调试日志",
      "enabled": true,
      "type": "LOGGER_NAME",
      "pattern": "net.minecraft.server.level",
      "action": "DENY",
      "level": "DEBUG"
    },
    {
      "name": "始终显示错误",
      "enabled": true,
      "type": "LEVEL",
      "pattern": "ERROR",
      "action": "ALLOW",
      "level": null
    }
  ]
}

规则类型

类型 描述
MESSAGE_REGEX 按正则模式匹配日志消息内容
LOGGER_NAME 按精确记录器名称或前缀(层级)匹配
LOGGER_REGEX 使用正则模式匹配记录器名称
LEVEL 按日志级别匹配(DEBUG、INFO、WARN、ERROR)

操作

操作 描述
DENY 抑制日志消息
ALLOW 强制消息通过,不受其他规则影响
NEUTRAL 无效果,透传给下一条规则

可选级别限制

任何规则都可以包含 level 字段,将其限制为特定的日志级别。例如,一条 LOGGER_NAME 规则若设置 "level": "DEBUG",则仅匹配该记录器的调试消息。

默认规则

LogFilter 附带了几个预配置的规则(默认禁用)供您入门使用:

  • 抑制 OpenAL/LWJGL 信息刷屏
  • 抑制进度加载消息
  • 抑制来自 net.minecraft.server.level 的调试日志
  • 抑制配方加载消息
  • 始终允许 ERROR 级别的消息

可通过在配置文件中设置 "enabled": true 来启用它们。