如何查看报错消息

遇到问题首先应该查看报错、查看日志,这里罗列一些常见的日志查看方式,供各位参考。

浏览器报错

页面操作着,突然报错了,只看报错消息有时不能很好的排查问题。需要查看 Chrome 开发者工具,查看具体的报错请求,以及返回的数据。可以参考《Chrome 开发者工具的使用》。

如果看了这些信息之后仍然无法解决,可以给 Nightingale 提 Github issue,入口在这里。在 issue 中描述具体的问题,以及 Chrome 开发者工具中看到的报错请求(主要是看请求的 url、payload、response)。

n9e、n9e-edge 的报错日志

以 n9e 举例,n9e-edge 也是类似的,其 stdout 日志的查看方式取决于进程启动方式:

  • 如果是 nohup 启动的(生产环境不建议 nohup 启动),就看进程启动时把标准输出重定向到哪个文件了
  • 如果是 systemd 启动的,就用 journalctl 查看,比如 journalctl -flu n9e

n9e 的配置文件中有日志相关的配置,如果指定了 Output 是 stdout,那么日志就会输出到标准输出,这时候就可以用上面的方式查看日志。如果 Output 配置的 file,那么日志就会输出到指定的目录下,具体是哪个目录,就是看 Dir 的配置,比如:

  1. [Log]
  2. # log write dir
  3. Dir = "logs"
  4. # log level: DEBUG INFO WARNING ERROR
  5. Level = "DEBUG"
  6. # stdout, stderr, file
  7. Output = "file"
  8. # # rotate by time
  9. # KeepHours = 4
  10. # # rotate by size
  11. # RotateNum = 3
  12. # # unit: MB
  13. # RotateSize = 256

上面的配置表示日志输出到 logs 目录下。

如果 systemctl status n9e 看到进程启动失败,此时可以直接在前台启动 n9e 进程,这样有报错就可以直接打印在控制台,方便查看,通过下面的命令启动:

  1. ./n9e

如果是容器部署的,那就通过 docker logs 查看进程的 stdout 日志,如果日志配置输出到指定目录了,可以直接进入容器内部查看。当然,如果日志目录挂载了 volume,也可以在宿主上查看。

categraf 的报错日志

categraf 和 n9e 类似的,一般都是通过 systemd 启动的,所以查看日志也是通过 journalctl,比如:

  1. journalctl -flu categraf

categraf 的日志里如果出现 E! 这样的关键字就表示 error 日志。提 issue 的时候贴一段 error 日志,有助于快速定位问题。