在 Debian 系统上收集 Node.js 日志,通常取决于你的 Node.js 应用是如何运行的(直接运行、systemd、PM2、Docker 等)。下面按常见场景说明。
Node.js 一般通过以下方式输出日志:
console.log()console.error()如果是文件日志,常见位置:
/var/log/yourapp/
./logs/
如果 Node.js 是通过 systemd 启动的:
sudo systemctl status yourapp
查看日志:
journalctl -u yourapp
实时查看:
journalctl -u yourapp -f
导出日志:
journalctl -u yourapp --since "2024-01-01" > yourapp.log
查看日志:
pm2 logs
查看指定应用:
pm2 logs yourapp
导出日志:
pm2 flush
pm2 logs yourapp --lines 1000 > yourapp.log
PM2 日志默认位置:
~/.pm2/logs/
如果是:
node app.js
日志在终端,重定向保存:
node app.js > app.log 2>&1
查看:
tail -f app.log
查看日志:
docker logs container_name
实时:
docker logs -f container_name
导出:
docker logs container_name > node.log
/etc/logrotate.d/nodeapp
/var/log/nodeapp/*.log {
daily
rotate 7
compress
missingok
}
如果是未捕获异常:
node app.js 2> error.log
或在代码中:
process.on('uncaughtException', e => {
console.error(e);
});
| 运行方式 | 命令 |
|---|---|
| systemd | journalctl -u yourapp |
| PM2 | pm2 logs |
| 直接运行 | node app.js > log 2>&1 |
| Docker | docker logs |
如果你能告诉我:
我可以给你更精确的命令或配置示例。