如何查看日志——查找错误原因
当程序退出或运行异常时,原因几乎总是写在日志里。查看日志的位置因运行方式而异,请根据您运行程序的方式查看。
阅读日志的诀窍
- 从最下面开始看。最近的记录在下面。
- 查找
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 日志 → 应用程序 / 系统 中查看。
咨询时
向技术支持咨询时,如果一并发送日志中的错误部分,我们就能更快地为您提供帮助。不过,如果日志中出现了令牌、密码,请先删除再发送。