Winston添加自定义日志级别

时间:2018-06-12 08:55:40

标签: javascript node.js logging winston

我尝试为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"

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

1 个答案:

答案 0 :(得分:2)

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