温馨提示×

Node.js错误日志在哪查看

小樊
43
2025-12-21 20:28:03
栏目: 编程语言

Node.js错误日志查看位置与方法

常见日志位置

  • 应用自定义日志文件:多数项目会在代码中或配置里指定路径,常见文件名如 app.log、error.log,或放在项目目录的 logs/ 下。若使用日志库(如 Winston、Pino、Bunyan、Log4js),日志路径以库配置为准。
  • systemd 服务日志:使用 systemd 管理的应用,标准输出与错误会被 journald 捕获,可用 journalctl 查看。
  • 系统日志:部分应用或依赖会将信息写入 /var/log/syslog/var/log/messages
  • PM2 托管应用:由 PM2 管理的进程有统一日志接口,可直接用 pm2 命令查看。
  • 常见目录约定:有的项目或部署脚本会把日志集中到 /var/log/nodejs/(需以实际配置为准)。

按运行方式的查看方法

  • 直接运行(前台/终端)
    • 实时查看输出:运行命令后直接观察终端;若重定向到文件,使用:tail -f app.log
  • 作为 systemd 服务运行
    • 查看服务日志:sudo journalctl -u your-service-name -f(加 -f 实时跟踪;可加 –since “2025-12-21 10:00:00” 限定时间)。
    • 若服务将日志写到文件,也可直接查看配置的日志文件路径。
  • 使用 PM2 运行
    • 查看全部应用日志:pm2 logs;查看指定应用:pm2 logs <app_name_or_id>
    • 常用选项:–lines 1000(最近 1000 行)、–follow(实时)。
  • 使用日志库写入文件(Winston/Pino/Bunyan/Log4js 等)
    • 到代码中配置的 filename 路径查看,例如:/var/log/myapp/app.log;实时跟踪:tail -f /var/log/myapp/app.log

快速定位与筛选技巧

  • 查找包含错误的行:
    • 在单个文件:grep -i “error” app.log;忽略大小写加 -i
    • 在目录:grep -R “error” /var/log/nodejs/
  • 实时跟踪并高亮关键字:
    • tail -f app.log | grep --color=auto -i “error”
  • 按时间范围查看 systemd 日志:
    • journalctl -u nodejs-app.service --since “2025-12-20” --until “2025-12-21”
  • 统计与去重分析:
    • 统计出现次数:grep -o “ERROR” app.log | sort | uniq -c
    • 提取字段分析(示例取第1和第7列):awk ‘{print $1,$7}’ app.log
  • 多文件合并查看:
    • tail -f /var/log/nodejs/*.log

仍未找到日志时的排查建议

  • 检查项目配置与代码:查看 config.json、settings.js 或日志库的 transports.File.filename 配置,确认日志路径与级别。
  • 确认运行方式:是 node app.jspm2 start,还是 systemd 服务;不同方式的日志入口不同。
  • 查看进程启动命令与环境:确认是否重定向了 stdout/stderr,以及 LOG_PATH 等环境变量。
  • 搜索可能的日志目录:如 /var/log//var/log/nodejs/、项目根目录 logs/
  • 仍未产出日志时,临时增强日志:在代码中对 console.error 或日志库设置更低的级别(如 debug/verbose),或使用 process.on(‘uncaughtException’) / process.on(‘unhandledRejection’) 捕获未处理异常并写入文件,以便快速定位问题。

0