温馨提示×

Node.js在Ubuntu上的错误日志在哪

小樊
64
2025-10-01 22:12:37
栏目: 编程语言

Node.js在Ubuntu上的错误日志位置取决于运行方式和配置,以下是常见场景及对应路径:

1. 直接运行Node.js应用(无进程管理器)

  • 控制台输出:若直接通过node app.js启动应用,错误信息会实时显示在终端中(包括同步/异步错误、未捕获异常等)。
  • 自定义日志文件:若代码中通过fs模块或日志库(如winstonpino)指定了日志路径(例如/home/username/project/logs/error.log),错误会写入该文件。需检查应用代码中的日志配置(如winston.createLoggertransports.File设置)确认具体路径。

2. 使用PM2进程管理器

若通过pm2 start app.js启动应用,PM2会自动捕获错误并存储到其日志目录:

  • 默认路径:错误日志位于用户主目录下的.pm2/logs/文件夹,文件名为应用名-err.log(例如my-node-app-err.log)。
  • 查看命令:使用pm2 logs 应用名实时查看错误日志,或pm2 logs --lines 100查看最近100行错误。

3. 通过Systemd服务运行

若将Node.js应用配置为Systemd服务(例如nodejs.service),错误日志会集成到系统日志中:

  • 查看命令:使用journalctl -u your-nodejs-service-name -t(替换your-nodejs-service-name为服务名称,可通过systemctl list-units --type=service获取)查看与Node.js相关的错误日志。
  • 系统日志文件:部分系统会将Node.js错误记录到/var/log/syslog/var/log/kern.log/var/log/error.log中,可使用cattail命令查看。

4. 自定义系统日志路径

若开发者手动配置了Systemd服务文件(如/etc/systemd/system/nodejs.service),可能在服务配置中指定了日志路径(例如StandardOutput=file:/var/log/nodejs/app.logStandardError=file:/var/log/nodejs/app-error.log)。需检查服务配置文件中的StandardOutputStandardError参数确认。

注意事项

  • 若未明确配置日志路径,优先检查应用代码中的日志配置(如winstonpinotransports设置)和package.json中的启动脚本。
  • 使用ls -l /proc/<PID>/fd/<PID>为Node.js进程ID,可通过ps aux | grep node获取)可查看进程打开的文件描述符,包括日志文件路径。

0