温馨提示×

Node.js在Ubuntu中日志文件在哪

小樊
33
2025-12-11 23:24:32
栏目: 编程语言

Node.js 在 Ubuntu 的常见日志位置

  • 项目目录下的 logs 文件夹:很多应用会把日志写到项目根目录的 logs/,常见文件名如 app.logerror.log。这是开发者自行约定的最常见位置。
  • systemd 服务日志:使用 systemd 管理的 Node.js 服务,标准输出与错误会被 journald 捕获,可通过 journalctl 查询,而不是写入某个文件。
  • 集中目录 /var/log/nodejs/:部分部署会把日志统一放到 /var/log/nodejs/,具体是否存在取决于你的部署脚本或服务单元配置。
  • PM2 管理的应用:PM2 默认把日志放在用户目录 ~/.pm2/logs/,常见文件如 app-out.logapp-error.log
  • 系统日志:若应用或启动脚本将 console.log 等输出到系统日志,可在 /var/log/syslog/var/log/messages 中检索。
  • 应用内自定义路径:使用 WinstonMorgan 等日志库时,日志路径完全由代码或配置指定,可能在任意可写目录。

如何快速定位你的日志文件

  1. 查看项目配置与代码:检查是否配置了日志目录(如 logs/)或使用了日志库(如 Winston/Morgan)及其输出路径。
  2. 检查是否使用 PM2:运行 pm2 list,再用 pm2 logs 实时查看;日志默认在 ~/.pm2/logs/
  3. 检查是否使用 systemd:运行 systemctl status your-nodejs-service,若 StandardOutput/StandardError 指向 journal,用 journalctl -u your-nodejs-service -f 实时查看。
  4. 全盘快速查找日志文件:执行 sudo find / -type f -name “*.log” 2>/dev/null | grep -i node,缩小范围后再查看具体文件。

常用查看与分析命令

  • 实时查看文件日志:tail -f /path/to/app.log
  • 查看 systemd 服务日志:journalctl -u your-nodejs-service -f
  • 检索关键字(如 error):grep -i “error” /var/log/nodejs/app.loggrep -i “error” logs/error.log
  • 查看系统日志:cat /var/log/syslog | grep -i node
  • 分析堆栈与错误级别:结合 grep/less 定位 ERROR/WARN 及堆栈信息,必要时用 ELK Stack 等工具做聚合分析。

日志轮转与维护建议

  • 使用 logrotate 管理文件轮转(示例配置路径 /etc/logrotate.d/nodejs):
    /var/log/nodejs/*.log {
    daily
    missingok
    rotate 7
    compress
    notifempty
    create 0640 root adm
    }
    测试配置:sudo logrotate -f /etc/logrotate.d/nodejs
  • 在应用内使用 winston-daily-rotate-file 等库做按日/按大小轮转,便于控制保留天数与压缩归档。

0