Winston 添加自定义日志级别

Pat*_*ick 5 javascript logging node.js 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,
         }),                
    ] 
});
Run Code Online (Sandbox Code Playgroud)

我尝试添加自定义日志级别,但我仍然在日志文件中看到所有日志。

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

var levels = {
levels: {
  info: 0,
  debug: 1,
  warning: 2,
  error: 3
}
};
Run Code Online (Sandbox Code Playgroud)

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

levels: levels.levels
Run Code Online (Sandbox Code Playgroud)

这在我的交通工具中:

 level: "error"
Run Code Online (Sandbox Code Playgroud)

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

Ash*_*ash 4

温斯顿中的日志记录级别基于优先级(从高到低)。日志的严重性按数字顺序从最重要到最不重要。

{ 
  emerg: 0, 
  alert: 1, 
  crit: 2, 
  error: 3, 
  warning: 4, 
  notice: 5, 
  info: 6, 
  debug: 7
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

var levels = {
levels: {
  error: 0
  info: 1,
  debug: 2,
  warning: 3
}
};
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看温斯顿日志记录级别