我在这里阅读了如何将Morgan日志写入文件:Morgan Logger + Express.js: writing file AND showing in console,但是如何利用Winston的DailyRotateFile()
来每天制作一个单独的文件(防止大文件文件)并自动清除旧文件?
当前,我将其用于自定义错误级别,这对Morgan来说也非常有用:
new winston.transports.DailyRotateFile({
filename: `${appRoot}/logs/product-%DATE%.log`,
level: 'product',
datePattern: 'YYYY-MM-DD',
maxSize: '20m',
maxFiles: '14d',
format: winston.format.combine(
winston.format.colorize(),
winston.format.timestamp({
format: 'DD-MM-YYYY HH:mm:ss'
}),
winston.format.label({label: getLabel(callingModule)}),
winston.format.printf(info => `[${info.timestamp}] [${info.level}] [${info.label}]: ${info.message}`)
),
})
摩根通过以下方式链接到Winston:
app.use(morgan("combined", {stream: winston.stream}));
在我的winston配置文件中:
logger.stream = {
write: (message, encoding) => {
logger.info(message);
}
}