日志与崩溃报告:如何阅读
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 … 开头的行。您不需要全部读完:
Caused by:后面的第一行 — 具体是什么坏了。- 在
at行中寻找熟悉的名字 —at com.plugin.name…。这就是罪魁祸首。 - 启动时的
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 key | YAML 配置损坏:制表符或缩进问题 |
Failed to load level | 世界已损坏 — 恢复备份 |
Invalid signature for profile public key | 1.19+ 聊天签名;让玩家重新连接 |
Unable to access jarfile | 核心文件丢失 — 从目录中恢复核心 |
Address already in use | 端口被之前的进程占用;从控制面板重启服务器 |
该向客服发送什么
不是最后一行的截图,而是从启动到报错的一段日志 — 或者文件的链接。最理想的是:完整的 latest.log 加上“在崩溃前您做了什么”的描述。这样您几分钟内就能得到答复。
整合包
在 Forge 和 Fabric 上,还要检查 crash-reports/crash-*.txt:顶部有一个 -- Head -- 块,写明了确切原因,底部是模组列表。Missing or unsupported mandatory dependencies 错误意味着某个模组需要另一个模组 — 安装该依赖即可。
Minecraft 托管您离线时服务器仍在运行创建服务器
