centos

CentOS中Node.js日志管理方法

小樊
38
2025-10-03 03:40:11
栏目: 编程语言

CentOS中Node.js日志管理方法

一、选择合适的日志库

日志库是Node.js日志管理的基础,CentOS环境下常用以下库:

二、使用PM2进行进程与日志管理

PM2是Node.js进程管理工具,内置日志管理功能,操作简便:

  1. 安装PM2:全局安装npm install pm2 -g
  2. 启动应用并记录日志pm2 start app.js --name my-node-app--name指定应用名称)。
  3. 查看日志
    • 查看所有应用日志:pm2 logs
    • 查看特定应用日志:pm2 logs my-node-app
    • 实时查看日志:pm2 logs --lines 1000(显示最近1000行)。
  4. 日志轮转配置:通过ecosystem.config.js文件自定义:
    module.exports = {
      apps: [{
        name: 'my-node-app',
        script: 'app.js',
        out_file: '/var/log/nodejs/my-app-out.log', // 标准输出路径
        error_file: '/var/log/nodejs/my-app-err.log', // 错误输出路径
        log_date_format: 'YYYY-MM-DD HH:mm Z', // 日志时间格式
        log_rotation: {
          period: '1d', // 每天轮转
          rotateAfterSize: '10M', // 文件超过10MB轮转
          keepFiles: 7 // 保留7天日志
        }
      }]
    };
    
    启动时加载配置:pm2 start ecosystem.config.js

三、利用logrotate工具管理日志轮转

logrotate是Linux系统自带的日志轮转工具,可自动切割、压缩、删除旧日志:

  1. 安装logrotatesudo yum install logrotate -y
  2. 创建配置文件:在/etc/logrotate.d/目录下创建nodejs-app文件,内容如下:
    /var/log/nodejs/*.log {
      daily                # 每天轮转
      rotate 7             # 保留7天日志
      compress             # 压缩旧日志(.gz格式)
      delaycompress        # 延迟压缩(避免当天日志被压缩)
      missingok            # 日志文件不存在时不报错
      notifempty           # 日志为空时不轮转
      create 0640 root adm # 创建新日志文件并设置权限
    }
    
  3. 测试配置sudo logrotate -f /etc/logrotate.d/nodejs-app(强制立即执行)。

四、集中式日志管理(可选)

对于分布式系统或需要集中分析的场景,可将日志发送到集中式平台:

五、日志级别管理

合理设置日志级别可提高日志可用性:

0
看了该问题的人还看了