跳到主要内容
← 指南列表

如何查看日志——查找错误原因

当程序退出或运行异常时,原因几乎总是写在日志里。查看日志的位置因运行方式而异,请根据您运行程序的方式查看。

阅读日志的诀窍

  • 从最下面开始看。最近的记录在下面。
  • 查找 Error、Exception、Traceback、failed、denied 之类的词。
  • 如果错误有很多行,最先出现的错误往往才是真正的原因。
  • 将错误语句原样复制后搜索,大多能找到解决方法。

用 pm2 运行的程序(Node.js 机器人、应用)

pm2 logs my-bot               # 实时日志(按 Ctrl + C 退出)
pm2 logs my-bot --lines 200   # 最近 200 行
pm2 logs my-bot --err         # 仅错误

用 systemd 运行的程序(Python 机器人、应用等)

journalctl -u my-bot -f                    # 实时日志
journalctl -u my-bot -n 100 --no-pager     # 最近 100 行
journalctl -u my-bot --since "1 hour ago"  # 最近 1 小时
sudo systemctl status my-bot               # 运行状态和最后几行日志

Docker 容器

docker ps -a                   # 容器列表(包括已停止的,查看 STATUS)
docker logs --tail 100 name     # 最近 100 行
docker logs -f name             # 实时日志

在 screen、tmux 中运行的程序

程序直接输出到屏幕上,因此请重新进入窗口查看。(screen -r name、tmux attach -t name)Minecraft 服务器的日志还会记录在服务器文件夹的 logs/latest.log 中。

tail -n 100 ~/minecraft/logs/latest.log

Nginx(网站)

sudo tail -n 50 /var/log/nginx/error.log    # 错误(502、权限问题等)
sudo tail -f /var/log/nginx/access.log      # 实时访问记录

整个系统

journalctl -p err -b --no-pager | tail -n 50     # 本次启动以来的错误
sudo dmesg | grep -i "out of memory"            # 因内存不足被强制终止的记录
journalctl --list-boots | tail -n 5             # 最近的重启记录

如果有内存不足的记录,请参考内存不足时。

Windows 服务器

  • 直接运行的程序,请查看控制台窗口中输出的内容。如果窗口一下子就关闭、来不及看,请在 .bat 文件的最后一行加上 pause。
  • 系统记录可以在“开始”菜单 → 事件查看器 → Windows 日志 → 应用程序 / 系统 中查看。

咨询时

向技术支持咨询时,如果一并发送日志中的错误部分,我们就能更快地为您提供帮助。不过,如果日志中出现了令牌、密码,请先删除再发送。

如果问题仍未解决,请在 Discord 提交工单。