centos

nodejs在centos上的日志如何配置

小樊
41
2025-08-20 16:34:39
栏目: 编程语言

在CentOS上配置Node.js应用程序的日志,通常涉及以下几个步骤:

  1. 选择日志库:首先,你需要选择一个日志库来记录应用程序的日志。流行的Node.js日志库包括winstonmorganpino等。

  2. 安装日志库:使用npm或yarn来安装你选择的日志库。例如,如果你选择winston,你可以运行:

    npm install winston
    
  3. 配置日志库:在你的Node.js应用程序中配置日志库。以下是一个使用winston的基本配置示例:

    const winston = require('winston');
    
    const logger = winston.createLogger({
      level: 'info',
      format: winston.format.json(),
      transports: [
        new winston.transports.File({ filename: 'error.log', level: 'error' }),
        new winston.transports.File({ filename: 'combined.log' })
      ]
    });
    
    if (process.env.NODE_ENV !== 'production') {
      logger.add(new winston.transports.Console({
        format: winston.format.simple()
      }));
    }
    
    module.exports = logger;
    
  4. 日志轮转:为了避免日志文件变得过大,可以使用winston-daily-rotate-file库来实现日志轮转。安装该库:

    npm install winston-daily-rotate-file
    

    然后在你的日志配置中使用它:

    const { createLogger, format, transports } = require('winston');
    const DailyRotateFile = require('winston-daily-rotate-file');
    
    const logger = createLogger({
      level: 'info',
      format: format.json(),
      transports: [
        new transports.File({ filename: 'error.log', level: 'error' }),
        new transports.File({ filename: 'combined.log' })
      ]
    });
    
    if (process.env.NODE_ENV !== 'production') {
      logger.add(new transports.Console({
        format: format.simple()
      }));
    }
    
    // Log rotation
    logger.add(new DailyRotateFile({
      filename: 'application-%DATE%.log',
      datePattern: 'YYYY-MM-DD-HH',
      zippedArchive: true,
      maxSize: '20m',
      maxFiles: '14d'
    }));
    
    module.exports = logger;
    
  5. 日志管理:确保你的日志文件不会占用过多的磁盘空间。你可以使用logrotate工具来自动管理日志文件。CentOS通常已经预装了logrotate,你可以编辑/etc/logrotate.d/目录下的配置文件来管理你的Node.js应用程序日志。

    例如,创建一个名为/etc/logrotate.d/myapp的文件,并添加以下内容:

    /path/to/your/logs/*.log {
      daily
      missingok
      rotate 14
      compress
      notifempty
      create 640 root adm
    }
    

    这将每天轮转日志文件,并保留最近14天的日志文件。

通过以上步骤,你可以在CentOS上配置Node.js应用程序的日志,确保日志记录的可靠性和可管理性。

0
看了该问题的人还看了