在 Debian 系统上解析 Node.js 日志,通常取决于日志是如何产生的(原生 console、PM2、systemd、Docker、日志库等)。下面按常见场景逐步说明。
如果 Node.js 是通过 systemd 启动的(常见于 Debian 服务器):
journalctl -u your-node-service.service
实时查看:
journalctl -u your-node-service.service -f
按时间筛选:
journalctl -u your-node-service.service --since "2024-01-01" --until "2024-01-02"
导出日志:
journalctl -u your-node-service.service > node.log
查看日志路径:
pm2 logs
pm2 logs app-name
日志文件位置:
~/.pm2/logs/
解析错误日志:
pm2 logs --err
常见文件位置:
/var/log/node/
/home/user/app/logs/
查看:
tail -f app.log
less app.log
2024-01-01T12:00:00.000Z INFO Server started
2024-01-01T12:00:01.000Z ERROR DB connection failed
{"level":"error","time":"2024-01-01T12:00:01Z","msg":"DB error","stack":"..."}
常用库:
pinowinstonbunyangrep ERROR node.log
grep -i "timeout" node.log
grep -c ERROR node.log
tail -n 100 node.log
tail -f node.log
jqcat node.log | jq '.'
只看错误:
cat node.log | jq 'select(.level=="error")'
提取字段:
cat node.log | jq '.msg'
less(搜索 /ERROR)grep / awk / sedjq(JSON)✅ 使用 JSON 日志
✅ 使用 pino 或 winston
✅ 输出到 stdout(让 systemd / Docker 收集)
✅ 设置日志级别(debug / info / error)
❌ 不要手动写文件日志(除非必要)
/etc/systemd/system/node-app.service
[Service]
ExecStart=/usr/bin/node /opt/app/index.js
Restart=always
StandardOutput=journal
StandardError=journal
如果你能提供:
我可以给你更具体的解析命令或脚本。