Skip to content
托管 · 故障排查

日志与崩溃报告:如何阅读

Millida 服务器日志存放在哪里,WARN 与 ERROR 有何区别,如何在堆栈跟踪中找到罪魁祸首插件,以及如何解读常见的控制台输出。

更新于 2026年8月4日

日志几乎能回答所有“为什么”的问题,前提是您知道该去哪里找。这项技能从第一次崩溃开始就能派上用场。

去哪里找

  • “控制台” — 当前实时输出,带历史记录和搜索功能。
  • 文件中的 logs/latest.log — 同一份日志的完整版本。之前的运行记录以 .log.gz 归档文件的形式放在旁边。
  • crash-reports/ — 仅在 Java 本身崩溃时才会出现的独立文件(通常发生在整合包上)。

一行日志由什么组成

[12:03:44] [Server thread/ERROR]: [Essentials] Error in config

时间 → 线程 → 级别 → 方括号中的来源 → 文本。

级别是否需要处理
INFO不需要,服务器正常运行
WARN有时需要:服务器扛住了,但有些不对劲
ERROR需要,有东西出错了
FATAL服务器正在崩溃

整合包启动时出现一堆 WARN 是正常的。关注第一个 ERROR,而不是最后一个:后面的通常只是连锁反应。

在堆栈跟踪中找到罪魁祸首

堆栈跟踪是一长串以 at … 开头的行。您不需要全部读完:

  1. Caused by: 后面的第一行 — 具体是什么坏了。
  2. 在 at 行中寻找熟悉的名字 — at com.plugin.name…。这就是罪魁祸首。
  3. 启动时的 Exception in thread "main" 是核心或 Java 的问题,不是插件的问题。

错误之前出现类似 [Plugin] Enabling Plugin v1.2 的行也是线索:它是在启用那个特定插件时崩溃的。

常见日志行

日志行含义
Can't keep up! Is the server overloaded?服务器跟不上 tick — 卡顿与 TPS
java.lang.OutOfMemoryError套餐内存用完了
A single server tick took 60.00 seconds(看门狗)有东西阻塞了主线程 — 几乎总是插件或模组
UnsupportedClassVersionError该 .jar 是为更新版本的 Java 构建的 — 核心与版本
Server attempted to load chunk saved with newer version世界版本比服务器版本新
while scanning a simple keyYAML 配置损坏:制表符或缩进问题
Failed to load level世界已损坏 — 恢复备份
Invalid signature for profile public key1.19+ 聊天签名;让玩家重新连接
Unable to access jarfile核心文件丢失 — 从目录中恢复核心
Address already in use端口被之前的进程占用;从控制面板重启服务器

该向客服发送什么

不是最后一行的截图,而是从启动到报错的一段日志 — 或者文件的链接。最理想的是:完整的 latest.log 加上“在崩溃前您做了什么”的描述。这样您几分钟内就能得到答复。

整合包

在 Forge 和 Fabric 上,还要检查 crash-reports/crash-*.txt:顶部有一个 -- Head -- 块,写明了确切原因,底部是模组列表。Missing or unsupported mandatory dependencies 错误意味着某个模组需要另一个模组 — 安装该依赖即可。

Minecraft 托管您离线时服务器仍在运行创建服务器