温馨提示×

如何定位ubuntu nodejs日志错

小樊
36
2026-10-03 13:38:45
栏目: 编程语言

在 Ubuntu 上定位 Node.js 日志和错误,通常可以按下面几个层次来做:


一、确认 Node.js 应用“日志在哪里”

1. 看应用自身输出

如果是前台运行:

node app.js

错误会直接打印在终端。

如果是后台运行(常见方式):

  • pm2
    pm2 logs
    pm2 logs appname
    
  • systemd
    journalctl -u yourapp.service -f
    
  • nohup
    cat nohup.out
    
  • docker
    docker logs container_name
    

二、查看系统级日志(Ubuntu)

1. systemd 日志(最常用)

sudo journalctl -u your-node-service -n 100 -f
  • -n 100:最近 100 行
  • -f:实时跟踪

2. 系统通用日志

sudo tail -f /var/log/syslog

三、常见 Node.js 错误定位方法

1. 看错误栈(stack trace)

重点关注:

  • Error:
  • at Object.<anonymous>
  • 文件路径 + 行号

例如:

Error: Cannot find module 'express'
    at Function.Module._resolveFilename

→ 说明依赖没装


2. 确认 Node / 依赖问题

node -v
npm -v
npm ls

常见错误:

  • 模块缺失 → npm install
  • 版本不兼容 → nvm 切换版本

3. 端口占用

sudo lsof -i :3000

或

netstat -tunlp | grep 3000

四、开启详细日志(调试)

1. 设置 DEBUG

DEBUG=* node app.js

2. 捕获未处理异常

process.on('uncaughtException', e => {
  console.error(e);
});
process.on('unhandledRejection', e => {
  console.error(e);
});

五、推荐做法(生产环境)

  • 用 PM2 + 日志文件
  • 或 systemd + journalctl
  • 配合 winston / pino 写结构化日志

如果你能贴出:

  • 启动方式(pm2 / systemd / docker)
  • 具体报错信息

我可以帮你精准定位是哪一行、哪个模块的问题。

0 踩