温馨提示×

怎样解析debian nodejs日志

小樊
45
2026-09-16 09:22:57
栏目: 编程语言

在 Debian 上解析 Node.js 日志,通常取决于日志是怎么产生的(console.log、Winston、PM2、systemd、Docker 等)。下面按常见场景给你一套实用方案。


一、先确认日志在哪

1. 直接运行 Node.js

node app.js

日志在终端,或你重定向的地方:

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

查看:

tail -f app.log

2. 使用 PM2(最常见)

pm2 logs
pm2 logs app-name

日志文件位置:

~/.pm2/logs/

合并日志解析:

pm2 flush        # 清空日志
pm2 logs --json # JSON 格式

3. 使用 systemd(Debian 服务)

journalctl -u your-node-service
journalctl -u your-node-service -f
 journalctl -u your-node-service --since "2024-01-01"

二、常见日志格式解析

1. 普通文本日志

示例:

2024-01-01 10:00:00 Error: DB connection failed

查看错误:

grep -i error app.log

查看某时间段:

sed -n '/10:00/,/10:30/p' app.log

2. JSON 日志(推荐)

Node 应用常用 Winston / Pino:

{"level":"error","time":"2024-01-01T10:00:00Z","msg":"DB error"}

解析方式:

使用 jq

cat app.log | jq 'select(.level=="error")'

统计错误数量

cat app.log | jq -r '.level' | sort | uniq -c

三、常用分析命令

实时查看

tail -f app.log

错误统计

grep -c "Error" app.log

按时间排序

sort -k1 app.log

提取 IP(Web 日志)

awk '{print $1}' access.log | sort | uniq -c | sort -nr

四、高级解析(日志聚合)

1. 使用 lnav

sudo apt install lnav
lnav app.log

自动识别时间、级别、错误高亮。


2. ELK / Grafana(生产环境)

  • Filebeat 收集
  • Elasticsearch 存储
  • Kibana / Grafana 可视化

适合:

  • 多服务
  • 高并发
  • 长期分析

五、最佳实践建议

✅ 使用结构化日志(JSON)
✅ 区分 stdout / stderr
✅ 设置日志级别(debug / info / error)
✅ 日志轮转(logrotate / PM2)


如果你愿意,可以:

  • 贴一段真实日志样例
  • 告诉我你用的是 PM2 / Docker / systemd / 裸跑

我可以直接帮你写解析脚本或命令

0