javascript - Winston 添加自定义日志级别

标签 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"

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

最佳答案

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

关于javascript - Winston 添加自定义日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50813078/

相关文章:

java - 未为 Websphere Application Server 8 上发布的 Web 服务生成日志

javascript - 附加组件 SDK Mozilla Firefox currentURI

javascript - 在 Javascript/JQuery 中“脉冲”边框

node.js - 该帐户未启用聚合管道

java - Apache cxf java-first 和 SOAP 模块 npm

android - 从 android/linux 中的特定 PID 获取所有日志?

logging - 如何使用 Apache CXF 以简单的方式获取传入和传出的soap xml?

javascript - 打开 MongoDB 数据库

javascript - 如何将React js项目从15.6更新到16.8?

node.js - 使用 Promises 的 "interval with timeout"有什么好的模式