在 Linux 上,Node.js 本身不会自动把日志写到某个固定位置,日志存哪里,取决于你(或你用的框架 / 进程管理工具)怎么配置。下面按常见情况说明:
如果你只是这样运行:
node app.js
node app.js > app.log 2>&1
日志位置:
app.log(当前目录,或你指定的路径)如果你用 PM2 启动:
pm2 start app.js
日志默认在:
~/.pm2/logs/
例如:
~/.pm2/logs/app-out.log(标准输出)~/.pm2/logs/app-error.log(错误日志)查看日志:
pm2 logs
如果是 systemd 服务:
journalctl -u your-node-service
Node 输出会被 systemd 接管,不写文件,而在 journal 里。
比如用:
winstonpinolog4js位置完全由配置决定,例如:
winston.add(new winston.transports.File({ filename: '/var/log/node/app.log' }));
常见目录:
/var/log/node//srv/app/logs/logs/# 看进程
ps aux | grep node
# 看是否重定向
ls -l /proc/<pid>/fd
# PM2
pm2 logs
# systemd
journalctl -u <服务名>
如果你愿意,可以告诉我:
我可以直接帮你定位日志文件。