Winston 添加自定义日志级别

Winston add custom log levels

我尝试将自定义日志级别添加到 winston。 这是记录器的代码:

const write = new (winston.Logger)({
    transports: [       
        new (winston.transports.DailyRotateFile)({
            filename: `${logDir}/%DATE%-log`,
            timestamp: tsFormat,
            datePattern: 'D-M-YYYY',
            prepend: true,
            zippedArchive:true,
         }),                
    ] 
});

我已尝试添加自定义日志级别,但我继续在我的日志文件中看到所有日志。

这是我的自定义日志级别代码:

var levels = {
levels: {
  info: 0,
  debug: 1,
  warning: 2,
  error: 3
}
};

然后我添加了这行传输代码:

levels: levels.levels

这是我的交通工具:

 level: "error"

但我也一直看到信息日志。 任何人都可以帮我解决这个问题吗?谢谢

winston 中的日志级别基于优先级(从高到低)。日志的严重性在数字上从最重要到最不重要。

{ 
  emerg: 0, 
  alert: 1, 
  crit: 2, 
  error: 3, 
  warning: 4, 
  notice: 5, 
  info: 6, 
  debug: 7
}

此处,当您记录错误级别 3 (logger.error) 时,crit、alert 和 emerg 下的日志也将包含在您的日志中。

同样在您的自定义日志级别中,level:error 的严重性非常低,它会记录所有 级别 <= 3,包括日志、调试和警告。

如果您只想记录 level:error 修改您的自定义日志级别严重性如下

var levels = {
levels: {
  error: 0
  info: 1,
  debug: 2,
  warning: 3
}
};

有关更多信息,请查看 winston logging levels