无控制台刷屏

无控制台刷屏

烦人的控制台刷屏,再也没有了!

优化

NoConsoleSpam

一个 Minecraft Fabric 模组,通过过滤掉不必要的消息和警告来减少控制台刷屏。

功能特性

  • 过滤掉常见的刷屏模式,包括:
    • Lithium 相关消息
    • 方块不匹配错误
    • 服务器过载消息
    • 玩家移动警告
    • 类分析错误
    • 支持通过配置自定义模式
  • 外部 JSON 配置文件,便于自定义
  • 增强的异常日志记录系统:
    • 按来源(模组/插件/类)组织异常
    • 捕获所有类型的 Java 异常(运行时、IO、反射、安全、网络等)
    • 记录带有详细上下文的 JVM 错误
    • 详细的异常信息,包括原因、线程、日志记录器和上下文
    • 单独的错误日志,包含完整堆栈跟踪
    • 自动将异常分类到逻辑分组中
  • 健壮的错误处理与优雅恢复机制
  • 空值安全的实现,确保服务器稳定性
  • 轻量且高效
  • 兼容 Minecraft 主要更新和快照版本

安装

  1. 为 Minecraft 安装 Fabric Loader
  2. 下载与你 Minecraft 版本对应的正确版本
  3. 将模组 JAR 文件放入你的 Minecraft mods 文件夹
  4. 使用 Fabric Loader 启动 Minecraft

配置

该模组现在使用位于 config/NoConsoleSpam/spamfilters.json 的外部配置文件。该文件在模组首次运行时自动创建。

你可以自定义以下设置:

  • 刷屏模式(使用正则表达式)
  • 忽略的日志记录器(完全静默特定日志记录器)
  • 异常日志记录设置

示例配置:

{
  "spamPatterns": [
    ".*Lithium.*",
    ".*mismatch.*",
    ".*overloading.*",
    ".*moving.*wrongly.*",
    ".*Class Analysis Error.*"
  ],
  "ignoredLoggers": [
    "net.minecraft.class_5458",
    "net.minecraft.class_5459",
    "net.minecraft.class_5460"
  ],
  "exceptionSettings": {
    "captureExceptions": true,
    "logFile": "logs/exceptions.log",
    "maxLogSize": 10485760,
    "maxBackupIndex": 3,
    "organizeBySource": true,
    "captureRuntimeExceptions": true,
    "captureIOExceptions": true,
    "captureFabricExceptions": true,
    "captureMinecraftExceptions": true,
    "captureReflectionExceptions": true,
    "captureSecurityExceptions": true,
    "captureNetworkExceptions": true,
    "captureDataExceptions": true,
    "captureErrors": true,
    "captureConcurrentExceptions": true
  }
}

异常日志记录

现在异常会单独记录到 Console Errors 目录中的独立文件中。默认情况下,异常会根据其来源(模组/插件/类)组织到子目录中,这使得追踪来自特定组件的问题变得更加容易。

每个异常日志文件包含:

  • 时间戳和异常类型
  • 来源标识(哪个模组/插件/类导致的)
  • 异常类别(运行时、IO、反射等)
  • 线程名称、日志记录器名称和日志级别
  • 完整的异常消息和堆栈跟踪
  • 原因信息(如果可用)
  • 任何被抑制的异常

这个增强的日志记录系统为调试 Minecraft 和 Fabric 模组中的问题提供了更多的上下文信息。

异常日志记录设置

新的异常日志记录系统提供了多个选项来控制记录内容:

  • organizeBySource:启用后,异常将按来源组织到子目录中
  • captureRuntimeExceptions:控制是否记录 RuntimeException(NullPointerException 等)
  • captureIOExceptions:控制是否记录 IOException(文件错误)
  • captureFabricExceptions:控制是否记录 Fabric 特有的异常
  • captureMinecraftExceptions:控制是否记录 Minecraft 特有的异常
  • captureReflectionExceptions:控制是否记录反射相关的异常
  • captureSecurityExceptions:控制是否记录安全相关的异常
  • captureNetworkExceptions:控制是否记录网络相关的异常
  • captureDataExceptions:控制是否记录数据相关的异常
  • captureErrors:控制是否记录 JVM 错误
  • captureConcurrentExceptions:控制是否记录并发相关的异常

更新日志

有关每个版本的更详细信息,请参阅 CHANGES.md 文件。

许可证

本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。