【问题标题】:Explain use of levels in winston logger解释 winston logger 中级别的使用
【发布时间】:2016-04-20 22:53:06
【问题描述】:

嘿,我正在使用这个 winston 记录器, 请解释在传输中使用级别,如果我在记录时使用带有信息的记录器会发生什么,我在记录数据时是否必须使用调试。

var logger = new (winston.Logger)({
transports: [
  new (winston.transports.Console)({
    level: 'debug',
    json: true
  }),
  new (winston.transports.File)({
    name: 'order_check',
    filename: './logs/order_check.log',
    level: 'debug'
  })
]
});
logger.log("info","request body");

【问题讨论】:

    标签: javascript node.js logging npm winston


    【解决方案1】:

    日志级别反映了日志消息的重要性 例如debug用于非重要消息,仅用于调试

    信息用于更重要的事情

    如果您将日志记录级别设置为调试,那么日志将显示调试和信息消息(以及更高级别)

    如果您将日志记录级别设置为 info,则日志将仅显示信息消息(以及更高级别) - 您不会看到调试消息 - 这有助于避免日志中出现混乱并防止日志中显示过多信息生产环境

    【讨论】:

      【解决方案2】:

      传输内部的级别指示传输将“侦听”的最低日志记录级别

      来自文档: https://github.com/winstonjs/winston#logging-levels

      每个级别都有一个特定的整数优先级。优先级越高,消息被认为越重要

      { error: 0, warn: 1, info: 2, verbose: 3, debug: 4, silly: 5 }
      

      因此,在您的示例中,您的传输配置为 debug: 4

      这意味着,它将记录级别

      • 4(调试)
      • 3(详细)
      • 2(信息)
      • 1(警告)
      • 0(错误)

      一个很好的用例是将一个传输(例如控制台)设置为调试,将另一个传输设置为信息。

      这会将所有debug 信息输出到控制台,但只将info 记录到文件中,防止日志文件混乱。

      【讨论】:

      • logger.log("info","re​​quest body");这个函数里面的信息是什么意思?这个信息级别和传输级别相关吗?
      • 这意味着您正在记录与“信息”相关的消息 - 在您的示例中,它将记录到两个传输,因为您已将它们设置为记录调试和更高版本。 logger.log("info","request body"); 中没有任何与传输相关的内容 - 只有日志级别和消息
      • 0是最高级别吗?
      • 感谢 Alex 的帮助。
      • 你要我设置 logger.log("info","re​​quest body");和transports.console级别调试正确然后检查日志?
      猜你喜欢
      • 1970-01-01
      • 2019-07-04
      • 1970-01-01
      • 2014-01-22
      • 2018-04-01
      • 2018-08-06
      • 2019-05-28
      • 2018-09-15
      • 2015-02-06
      相关资源
      最近更新 更多