发布于2026-07-16 阅读(0)
扫一扫,手机访问
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 中的启动脚本。有时候日志可能被写到了默认的 npm 输出里。ls -l /proc//fd/ ( 是 Node.js 进程ID,可以通过 ps aux | grep node 获取),可以列出进程打开的所有文件描述符,日志文件的路径就在其中。这招在找不到日志时尤其管用。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8