在 Linux 上,Node.js 本身不会自动把日志写到某个固定路径,日志位置取决于你(或你的项目/框架/进程管理器)是怎么配置的。下面按常见情况说明:
console.log / console.error默认是输出到:
如果直接在终端运行:
node app.js
日志就在当前终端。
如果重定向了:
node app.js > app.log 2>&1
日志就在:
./app.log
~/.pm2/logs/
示例:
~/.pm2/logs/app-out.log # 标准输出
~/.pm2/logs/app-error.log # 错误日志
pm2 logs
pm2 logs app
pm2 start app.js --output /var/log/node/app-out.log --error /var/log/node/app-error.log
如果 Node.js 是通过 systemd 启动的:
journalctl -u your-service-name
journalctl -u your-service-name -f
/var/log/journal/
通常在代码里指定:
morgan('combined', { stream: fs.createWriteStream('/var/log/node/access.log') })
路径由配置决定,例如:
new winston.transports.File({ filename: '/var/log/node/app.log' })
/var/log/node//var/log/app/项目目录/logs/项目目录/log/sudo find / -name "*.log" 2>/dev/null | grep -i node
或看进程打开的文件:
ls -l /proc/$(pgrep node)/fd
如果你能告诉我:
我可以帮你精确定位日志路径。