【发布时间】:2018-01-18 16:44:50
【问题描述】:
我已经为我的应用程序定义了自定义级别。它们如下。
protected levels: Level = {
"error": 0,
"warn": 1,
"info": 2,
"debug": 3,
"trace": 4
};
我正在使用每日文件轮换传输来获取单独文件中的每日日志。
const options: Object = {
name: this.level,
filename: logFilePath,
dirname: WinstonLogAgent.DIR_LOG,
datePattern: "yyyyMMdd.",
prepend: true,
level: this.level,
levels: this.levels,
maxsize: this.maxFileSize,
maxFiles: this.maxFileCount,
handleExceptions: true,
humanReadableUnhandledException: true
};
this.transportInstance.push(new (winston.transports.DailyRotateFile)(options));
如果我将日志级别定义为“信息”,它将创建一个名为 info.log 的日志文件,并将记录级别“信息”、“警告”和“错误”(跟踪和调试将被忽略)。
但我想要的行为不同。如果我将级别指定为 'info' 并且我正在记录级别 'info' 、 'warn' 和 'error' ,那么应该为每种类型的日志创建单独的文件。即“信息”级别应记录到 info.log,“警告”级别应记录到 warn.log。
我已经尝试指定五个不同的每日文件轮换传输,每个都有唯一的级别。然后我发现的问题是有重复的日志条目。 例如,如果正在记录“错误”级别,则当日志级别设置为 info 时,它将记录到 info.log、warn.log 和 error.log。
我怎样才能实现我的目标?
【问题讨论】: