解释winston logger中级别的使用

时间:2016-01-15 10:54:59

标签: javascript node.js logging npm winston

嘿,我正在使用这个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");

2 个答案:

答案 0 :(得分:5)

传输中的级别表示传输将“侦听”的最小日志记录级别

从文档中: https://github.com/winstonjs/winston#logging-levels

  

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

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

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

这意味着,它将记录级别

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

一个很好的用例是将一个传输(例如Console)设置为调试,将另一个传输设置为info。

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

答案 1 :(得分:1)

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

信息用于更重要的事情

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

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