linux

如何设置Node.js日志的保留期限

小樊
44
2025-08-10 07:01:59
栏目: 编程语言

要设置Node.js日志的保留期限,您可以使用一些流行的日志库,例如winstonmorgan。这里以winston为例,展示如何设置日志保留期限。

首先,确保您已经安装了winston

npm install winston

接下来,创建一个名为logger.js的文件,并添加以下代码:

const winston = require('winston');

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.combine(
    winston.format.timestamp(),
    winston.format.printf(({ timestamp, level, message }) => {
      return `${timestamp} ${level}: ${message}`;
    })
  ),
  transports: [
    new winston.transports.File({ filename: 'logs/error.log', level: 'error' }),
    new winston.transports.File({ filename: 'logs/combined.log' })
  ]
});

// 设置日志保留期限
const logRotation = require('winston-daily-rotate-file');

logger.add(new logRotation({
  filename: 'logs/error-%DATE%.log',
  datePattern: 'YYYY-MM-DD',
  zippedArchive: true,
  maxSize: '20m',
  maxFiles: '14d'
}));

logger.add(new logRotation({
  filename: 'logs/combined-%DATE%.log',
  datePattern: 'YYYY-MM-DD',
  zippedArchive: true,
  maxSize: '20m',
  maxFiles: '14d'
}));

module.exports = logger;

在这个例子中,我们使用了winston-daily-rotate-file库来设置日志保留期限。首先,您需要安装它:

npm install winston-daily-rotate-file

然后,我们在logger.js文件中引入winston-daily-rotate-file,并为每个日志文件创建一个新的logRotation实例。在这个例子中,我们设置了以下选项:

在这个例子中,我们设置了每个日志文件的最大大小为20MB,保留最近14天的日志文件。您可以根据需要调整这些设置。

最后,在您的应用程序中使用logger.js文件:

const logger = require('./logger');

logger.info('Hello, world!');

现在,您的Node.js应用程序将按照指定的保留期限自动管理日志文件。

0
看了该问题的人还看了