gpt4 book ai didi

javascript - Winston javascript 记录器正在创建两个单独的日志文件。如何将所有条目记录到一个文件中?

转载 作者:太空宇宙 更新时间:2023-11-04 01:18:25 25 4
gpt4 key购买 nike

我正在尝试使用Winstonwinston-daily-rotate-file将我的所有控制台/日志输出从 Node.js 服务器记录到一个文件中,该文件(希望)每天午夜轮换。

我遇到的问题是未处理的异常似乎会生成一个新的日志文件,而不是写入现有的日志文件。有关复制行为,请参阅下面的示例代码。 如何将所有输出保存到单个日志文件以及输出到控制台? 目前,控制台方面似乎很好,但请随意指出我认为明显的任何内容失踪了。

  • 操作系统:Win 10
  • Node :v12.16.0
  • npm:v6.13.4
  • winston :v3.2.1
  • winston-daily-rotate-file:v4.4.2
    const winston = require('winston');
const DailyRotateFile = require('winston-daily-rotate-file');
const path = require('path');

var logger = new (winston.createLogger)({
transports: [
new (winston.transports.Console)({
format: winston.format.combine(
winston.format.timestamp(),
winston.format.colorize({ all: true }),
winston.format.printf((info) => {
const {
timestamp, level, message
} = info;
return `${timestamp} - ${level}: ${message}`;
}),
),
handleExceptions: true
}),
new DailyRotateFile({
name: 'file',
datePattern: 'YYYY-MM-DDTHH-mm-ss',
handleExceptions: true,
format: winston.format.combine(
winston.format.timestamp(),
winston.format.printf((info) => {
const {
timestamp, level, message
} = info;
return `${timestamp} - ${level}: ${message}`;
}),
),
filename: path.join(__dirname, 'logs', '%DATE%.log')
}),
]
});

logger.info("This is an info message");
logger.error("This is an error message");
setTimeout(() => {throw new Error('oh dear!')}, 5000);

最佳答案

我的问题是由 datePattern 选项引起的。 winston-daily-rotate-file 使用此模式来确定文件轮换的频率。由于我在模式中包含了秒数,因此它正在查找具有当前时间戳(精确到秒)的文件并在写入文件之前创建它。

要获取我只需要更改的每日文件

datePattern: 'YYYY-MM-DDTHH-mm-ss'

datePattern: 'YYYY-MM-DD'

关于javascript - Winston javascript 记录器正在创建两个单独的日志文件。如何将所有条目记录到一个文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60194788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com