温馨提示×

如何读ubuntu nodejs日志

小樊
42
2026-09-12 10:46:33
栏目: 编程语言

在 Ubuntu 上查看和“读”(分析)Node.js 日志,通常有几种常见场景,下面按常用程度给你一个清晰指南。


一、Node.js 应用自己打的日志(最常见)

1. 控制台日志(最基础)

如果你是直接运行:

node app.js

日志会输出在终端:

  • console.log()
  • console.error()
  • 未捕获异常

2. 后台运行(PM2 / systemd / nohup)

✅ 使用 PM2(强烈推荐)

pm2 logs
pm2 logs appname
pm2 logs --lines 100

查看错误日志:

pm2 logs --err

✅ 使用 nohup

nohup node app.js > app.log 2>&1 &
tail -f app.log

✅ systemd 服务

journalctl -u yourapp.service
journalctl -u yourapp.service -f
journalctl -u yourapp.service --since "1 hour ago"

二、Ubuntu 系统级日志

1. 系统日志(通用)

sudo tail -f /var/log/syslog

2. Nginx 反代 Node.js(很常见)

sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log

三、如何“读”Node.js 日志(分析思路)

✅ 1. 看错误类型

重点看:

  • Error:
  • ENOENT(文件找不到)
  • EADDRINUSE(端口被占用)
  • ECONNREFUSED(连不上数据库)
  • TypeError / ReferenceError

✅ 2. 看堆栈(stack trace)

at app.js:23:10

→ 对应代码第 23 行

✅ 3. 按时间排序

less app.log
G # 跳到末尾
?ERROR # 向上搜索

✅ 4. 过滤关键信息

grep ERROR app.log
grep -i timeout app.log
grep "MongoError" app.log

四、推荐日志方案(生产环境)

  • Winston / Pino(结构化日志)
  • PM2 + logrotate
  • Docker + fluentd / loki

示例(Pino):

const pino = require('pino')
const logger = pino()
logger.error({ err }, 'request failed')

五、一句话总结

Ubuntu 上读 Node.js 日志 =
先确定运行方式(PM2 / systemd / 终端)
再用 tail / journalctl / pm2 logs 看
重点看 Error + 堆栈 + 时间线

如果你愿意,可以贴一段日志,我可以直接帮你“读”和定位问题。

0