温馨提示×

Ubuntu下Node.js日志文件在哪

小樊
45
2026-01-11 09:41:27
栏目: 编程语言

Ubuntu下Node.js日志文件位置与定位方法

常见位置

  • PM2 管理:日志默认在用户主目录的 ~/.pm2/logs/,常见文件名为 <app_name>-out.log(标准输出)与 <app_name>-err.log(错误输出)。
  • 系统日志目录:很多应用会把日志写到 /var/log/;若以系统服务运行,可用 journalctl -u <service_name> 查看。
  • 项目或安装目录:应用配置或代码中常把日志写到项目里的 logs/ 目录,或直接放在 项目根目录(如 app.log、error.log)。
  • 自定义路径:通过环境变量(如 LOG_PATH)或日志库(如 Winston、Log4js)指定,路径完全取决于你的配置。

快速定位步骤

  1. 若使用 PM2:运行 pm2 logspm2 logs <app_name_or_id> 实时查看;日志文件在 ~/.pm2/logs/
  2. 查看项目配置与代码:检查 config.json、settings.js 或启动脚本中是否设置了日志文件路径;留意是否使用 process.env.LOG_PATH 等变量。
  3. 全盘快速查找日志文件:在项目目录或可能的日志目录执行
    • 查找包含 “.log” 的文件:find /your/project -type f -name “*.log”
    • 查找最近修改的日志:find /var/log /your/project -type f -name “*.log” -mtime -7
  4. 若为系统服务:用 sudo journalctl -u <service_name> -f 实时查看服务日志。

常用查看命令

  • 实时查看:tail -f /path/to/app.log
  • 查看最近 N 行:tail -n 1000 /path/to/app.log
  • 分页查看:less /path/to/app.log
  • 查看系统日志:sudo tail -f /var/log/syslog
  • PM2 日志:pm2 logspm2 logs --lines 1000 --follow

日志轮转与维护

  • 使用 logrotate(系统级):
    • 新建配置:sudo nano /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 + winston-daily-rotate-file(应用内):可按日期切分、压缩并限制保留天数,适合容器化或无 systemd 的场景。

0