解析 Debian 系统上 JavaScript(JS)相关的日志,核心在于定位日志来源和理解日志格式。Debian 本身并不直接运行 JS,通常是运行在 Node.js、Electron 或 Nginx/Apache 反代的前端应用中。
以下是一份从基础到进阶的解析指南:
首先要区分是哪一部分产生的 JS 日志:
/var/log/syslog/var/log/node/(如果自定义)pm2 logsjournalctl -u your-service/var/log/nginx/access.log/var/log/nginx/error.log如果 JS 服务由 systemd 管理:
journalctl -u your-js-service.service -f
查看历史:
journalctl -u your-js-service.service --since "2025-01-01" --until "2025-01-10"
pm2 logs
pm2 logs app-name
pm2 logs --lines 200
PM2 日志默认在:
~/.pm2/logs/
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log
过滤 JS 请求:
grep "\.js" /var/log/nginx/access.log
Node.js 常见错误:
| 类型 | 含义 |
|---|---|
| ReferenceError | 变量未定义 |
| TypeError | 类型错误 |
| SyntaxError | 语法错误 |
| ECONNREFUSED | 无法连接数据库 / API |
| ETIMEDOUT | 请求超时 |
示例:
TypeError: Cannot read properties of undefined (reading 'id')
at /app/service/user.js:23
重点看:
在 Nginx 日志中:
GET /static/app.js 404
POST /api/login 500
grep -i error /var/log/syslog
journalctl -p err
journalctl --since "10 minutes ago"
cat app.log | jq .
grep "TypeError" app.log | sort | uniq -c | sort -nr
✅ 使用结构化日志(JSON)
console.log(JSON.stringify({
level: "error",
message: "DB connection failed",
time: new Date().toISOString()
}));
✅ 使用日志库:
✅ 日志分级:
systemctl list-units | grep node
journalctl -u node-app -f
Error: connect ECONNREFUSED 127.0.0.1:5432
systemctl status postgresql
你可以直接贴出:
我可以逐行帮你解析并给出解决方案。