温馨提示×

Debian 系统中 Node.js 日志如何查看

小樊
43
2025-12-07 05:18:59
栏目: 编程语言

Debian 系统中 Node.js 日志查看指南

一 常见日志位置与来源

  • 应用自定义文件:多数项目会在项目目录的 logs/ 或配置中指定路径,例如 /var/log/nodejs//var/log/myapp.log,具体以应用或日志库配置为准。
  • 系统日志:由 systemd 托管的应用,日志进入 journald,可通过服务单元名查看;未托管但向系统日志写入的应用,可在 /var/log/syslog 中检索。
  • 进程管理器:使用 PM2 时,日志由 PM2 管理,统一通过 PM2 命令查看。
  • 框架与中间件:如 Express + morgan 常输出访问日志与错误日志,路径取决于应用配置。

二 快速查看与检索命令

  • 实时查看文件日志:tail -f /path/to/app.log
  • 查看文件末尾 N 行:tail -n 100 /path/to/app.log
  • 全文查看:cat /path/to/app.log
  • 关键字过滤:grep -i “error” /path/to/app.log
  • 多文件实时跟踪:tail -f /var/log/nodejs/*.log
  • 系统日志检索:grep -i “node” /var/log/syslog
  • 按时间筛选 systemd 日志:journalctl -u nodeapp.service --since “2025-12-01” --until “2025-12-07”
  • 查看服务最近启动日志:journalctl -u nodeapp.service -b
  • 内核与驱动线索:dmesg | grep -i node
    以上命令覆盖文件、系统日志与内核层面的常用排查路径。

三 按运行方式查看

  • 使用 systemd 管理的服务
    1. 确认服务名:systemctl list-units --type=service | grep node
    2. 实时查看:journalctl -u your-nodejs-service -f
    3. 按时间/启动筛选:journalctl -u your-nodejs-service --since today -b
  • 使用 PM2 管理的进程
    1. 实时查看全部:pm2 logs
    2. 查看指定应用:pm2 logs app_name
    3. 按时间查看:pm2 logs app_name --since 10m
  • 直接前台运行或控制台输出
    直接在前台运行时,日志打印到控制台;若重定向到文件,则按“文件日志”方式用 tail/grep 等查看。

四 定位日志路径与配置

  • 检查应用配置与代码:查看项目中的日志库配置(如 Winston、Pino、Bunyan、Log4js、morgan)的 filenamestream 字段,确认日志文件路径。
  • 检查环境变量:echo $LOG_PATH 或 grep -R “LOG_PATH” /path/to/app 查找是否由环境变量指定。
  • 检查 systemd 单元文件:systemctl cat your-nodejs.service,查看 StandardOutput/StandardErrorExecStart 及是否启用 journald 日志。
  • 检查默认目录与系统日志:ls -l /var/log/nodejs/ 2>/dev/null;grep -i “node” /var/log/syslog 查找相关输出。

五 日志轮转与分析建议

  • 日志轮转:使用 logrotate 管理日志大小与保留,示例配置(/etc/logrotate.d/nodeapp):
    /var/log/nodeapp.log { daily missingok rotate 7 compress notifempty create 0640 root adm }
  • 集中与分析:小规模可用 ELK Stack(Elasticsearch/Logstash/Kibana)Fluentd 收集与可视化;中大型可结合 Prometheus + Grafana 做指标与告警联动。

0