Node.js在Ubuntu上的错误日志位置取决于运行方式和配置,以下是常见场景及对应路径:
node app.js启动应用,错误信息会实时显示在终端中(包括同步/异步错误、未捕获异常等)。fs模块或日志库(如winston、pino)指定了日志路径(例如/home/username/project/logs/error.log),错误会写入该文件。需检查应用代码中的日志配置(如winston.createLogger的transports.File设置)确认具体路径。若通过pm2 start app.js启动应用,PM2会自动捕获错误并存储到其日志目录:
.pm2/logs/文件夹,文件名为应用名-err.log(例如my-node-app-err.log)。pm2 logs 应用名实时查看错误日志,或pm2 logs --lines 100查看最近100行错误。若将Node.js应用配置为Systemd服务(例如nodejs.service),错误日志会集成到系统日志中:
journalctl -u your-nodejs-service-name -t(替换your-nodejs-service-name为服务名称,可通过systemctl list-units --type=service获取)查看与Node.js相关的错误日志。/var/log/syslog、/var/log/kern.log或/var/log/error.log中,可使用cat或tail命令查看。若开发者手动配置了Systemd服务文件(如/etc/systemd/system/nodejs.service),可能在服务配置中指定了日志路径(例如StandardOutput=file:/var/log/nodejs/app.log、StandardError=file:/var/log/nodejs/app-error.log)。需检查服务配置文件中的StandardOutput和StandardError参数确认。
winston、pino的transports设置)和package.json中的启动脚本。ls -l /proc/<PID>/fd/(<PID>为Node.js进程ID,可通过ps aux | grep node获取)可查看进程打开的文件描述符,包括日志文件路径。