解释在 winston logger 中级别的使用

Explain use of levels in winston logger

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

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

信息用于更重要的事情

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

如果您将日志记录级别设置为信息,那么日志将仅显示信息消息(和更高级别)——您不会看到调试消息——这有助于避免日志中出现混乱,并防止在登录生产环境

传输中的级别表示传输将"listen out for"

最低日志记录级别

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

Each level is given a specific integer priority. The higher the priority the more important the message is considered to be

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

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

这意味着,它将记录级别

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

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

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