温馨提示×

如何配置Debian上的Node.js日志级别

小樊
33
2025-11-14 18:40:03
栏目: 编程语言

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

  1. 选择日志库:首先,你需要选择一个日志库。Node.js有许多流行的日志库,如winstonpinomorgan等。这里我们以winston为例。

  2. 安装日志库:如果你还没有安装winston,可以使用npm或yarn来安装它。

    npm install winston
    

    或者

    yarn add 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. 设置环境变量:你可以通过设置环境变量来控制日志级别。例如,在启动应用程序时,可以设置NODE_ENV和自定义日志级别。

    NODE_ENV=production LOG_LEVEL=info node app.js
    

    在你的应用程序代码中,你可以读取这些环境变量并相应地配置日志级别:

    const logger = require('./logger');
    
    const logLevel = process.env.LOG_LEVEL || 'info';
    logger.level = logLevel;
    
  5. 日志轮转:为了防止日志文件变得过大,你可以使用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 DailyRotateFile({
          filename: 'application-%DATE%.log',
          datePattern: 'YYYY-MM-DD-HH',
          zippedArchive: true,
          maxSize: '20m',
          maxFiles: '14d'
        }),
      ],
    });
    
    module.exports = logger;
    

通过以上步骤,你可以在Debian上配置Node.js应用程序的日志级别,并确保日志文件得到适当的管理。

0