首页 帮助中心 新加坡服务器 CentOS系统 Node.js日志丢失怎么办?
CentOS系统 Node.js日志丢失怎么办?
时间 : 2025-02-10 16:46:48 编辑 : 华纳云 阅读量 : 44

  Node.js在CentOS上日志丢失的情况可能由多个因素导致,包括日志未正确写入、日志文件被清理、进程崩溃或日志管理机制影响等。你可以按照以下步骤进行排查和解决:

  1. 确保日志正确输出

  ①检查日志路径

  如果你的应用使用 console.log() 输出日志,确保启动 Node.js 时正确重定向了日志输出。例如:

  node app.js > app.log 2>&1 &

  或者使用 tee 进行日志存储:

  node app.js 2>&1 | tee -a app.log &

  如果日志未写入,检查 app.log 文件的权限:

  ls -lah app.log

  确保日志文件有写入权限,必要时执行:

  chmod 644 app.log

  ②使用 pm2 进程管理

  如果你使用 pm2 运行 Node.js,日志默认存储在 ~/.pm2/logs/ 目录,可查看:

  pm2 logs

  如果日志未显示,可能是 pm2 日志轮转导致,可以设置日志保留:

  pm2 set pm2:log_date_format "YYYY-MM-DD HH:mm:ss"

  pm2 set pm2:log_max_size "10M"

  pm2 save

  2. 检查日志轮转与系统清理

  ①检查 logrotate

  CentOS 可能启用了 logrotate,导致日志被自动清理。查看 /etc/logrotate.d/ 目录是否有影响日志的规则:

  cat /etc/logrotate.d/your_app_log

  可以修改 logrotate 配置,如:

  /var/log/app.log {
      daily
      missingok
      rotate 7
      compress
      notifempty
      create 0644 root root
  }

  然后重启 logrotate:

  systemctl restart logrotate

  ②检查 tmp 清理

  如果日志存储在 /tmp 目录,CentOS 可能会定期清理此目录。可改用 /var/log/ 目录存储日志。

  3. 检查 Node.js 进程崩溃

  如果应用异常退出,日志可能丢失:

  • 运行 dmesg | grep node 检查是否有 OOM (内存溢出)。
  • 使用 pm2 restart all 确保应用稳定运行。

  如果是 systemd 启动的应用,使用 journalctl -u your_app.service 查看日志。

华纳云 推荐文章
优化PHP数据库搜索和缓存的方法 Windows云服务器如何防止SQL注入攻击? 无法与数据库服务器建立可靠的数据连接怎么办? Ubuntu中刻录光盘的详细指南 Linux服务器提示503服务不可用的原因及解决方法 GoAccess日志分析工具的详细用法 Docker安装和运行及删除应用程序的操作方法 Linux中安装和挂载Dropbox文件夹的命令 Linux中文件对比和差异分析的常用工具 Linux中大页内存的管理方法
客服咨询
7*24小时技术支持
技术支持
渠道支持