在 Ubuntu 下,Node.js 本身的日志位置并不固定,主要取决于你如何运行 Node.js 程序以及代码里怎么写日志。下面按常见情况说明:
Node.js 不会自动生成日志文件,日志通常由代码控制:
console.log() → 输出到标准输出(stdout)console.error() → 输出到标准错误(stderr)node app.js
日志直接打印在终端
node app.js > app.log 2>&1 &
日志在:
当前目录/app.log
pm2 start app.js
PM2 日志默认在:
~/.pm2/logs/
例如:
~/.pm2/logs/app-out.log # 标准输出
~/.pm2/logs/app-error.log # 错误日志
查看日志:
pm2 logs
如果你用 systemd 管理 Node 服务:
journalctl -u your-node-service.service
日志由 systemd 管理,不在文件里,而是存在:
/var/log/journal/
很多项目会用日志库:
winstonpinomorgan(HTTP 日志)例如:
winston.add(new winston.transports.File({ filename: '/var/log/node/app.log' }));
那日志就在你代码指定的路径,常见位置:
/var/log/node/
/var/log/<项目名>/
./logs/
Node 前面通常是 Nginx:
/var/log/nginx/access.log
/var/log/nginx/error.log
ps aux | grep node
ls -l /proc/<pid>/fd
Node.js 没有统一日志位置,日志在哪,取决于你怎么运行它、用什么工具、代码怎么写。
如果你愿意,可以告诉我:
我可以帮你精准定位日志文件。