温馨提示×

怎样收集debian nodejs日志

小樊
39
2026-10-21 18:38:20
栏目: 编程语言

在 Debian 系统上收集 Node.js 日志,通常取决于你的 Node.js 应用是如何运行的(直接运行、systemd、PM2、Docker 等)。下面按常见场景说明。


一、确认 Node.js 日志在哪里

1. 应用自身输出

Node.js 一般通过以下方式输出日志:

  • console.log()
  • console.error()
  • 日志库(winston、pino、bunyan 等)

如果是文件日志,常见位置:

/var/log/yourapp/
./logs/

二、不同运行方式的日志收集

✅ 方式 1:使用 systemd(推荐生产环境)

如果 Node.js 是通过 systemd 启动的:

sudo systemctl status yourapp

查看日志:

journalctl -u yourapp

实时查看:

journalctl -u yourapp -f

导出日志:

journalctl -u yourapp --since "2024-01-01" > yourapp.log

✅ 方式 2:使用 PM2(常见 Node.js 管理器)

查看日志:

pm2 logs

查看指定应用:

pm2 logs yourapp

导出日志:

pm2 flush
pm2 logs yourapp --lines 1000 > yourapp.log

PM2 日志默认位置:

~/.pm2/logs/

✅ 方式 3:直接运行 Node.js

如果是:

node app.js

日志在终端,重定向保存:

node app.js > app.log 2>&1

查看:

tail -f app.log

✅ 方式 4:Docker 容器中的 Node.js

查看日志:

docker logs container_name

实时:

docker logs -f container_name

导出:

docker logs container_name > node.log

三、集中收集(进阶)

1. 日志文件 + logrotate

/etc/logrotate.d/nodeapp

/var/log/nodeapp/*.log {
  daily
  rotate 7
  compress
  missingok
}

2. 集中日志系统

  • rsyslog / syslog
  • ELK(Elasticsearch + Logstash + Kibana)
  • Loki + Grafana
  • Fluent Bit

四、排查 Node.js 崩溃日志

如果是未捕获异常:

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

如果你能告诉我:

  • Node.js 怎么启动的
  • 是否在服务器/容器
  • 想收集“运行日志”还是“错误日志”

我可以给你更精确的命令或配置示例。

0 踩