【问题标题】:winston log level/ hide log levels温斯顿日志级别/隐藏日志级别
【发布时间】:2015-06-23 05:34:46
【问题描述】:

据我了解,Winston 的日志记录级别具有层次结构。您可以使用winston.level = 'error' 设置级别,并且不应显示以下所有级别。不幸的是,我的控制台中仍然显示了信息和调试日志。

问题 1):

如何真正设置winston只显示日志级别

问题 2)

为什么调试仍然显示在控制台中,我将其配置为显示在日志文件中(它还做了什么)

winston = require('winston')
winston.emitErrs = true
logger = new winston.Logger({
  transports: [
    new winston.transports.File({
      level: 'info'
      filename: 'logs/log.log'
      handleExceptions: true
      json: true
      maxsize: 5242880 #5MB
      maxFiles: 5
      colorize: false
      timestamp: true
    }),
    new winston.transports.Console({
      level: 'debug'
      handleExceptions: true
      json: false
      colorize: true
    })
  ],
  exitOnError: false
})
winston.level = 'error'

module.exports = logger
module.exports.stream = {
  write: (message, encoding) ->
    logger.info(message)
}

代码基本上来自这个 tut: http://tostring.it/2014/06/23/advanced-logging-with-nodejs/

【问题讨论】:

    标签: node.js winston


    【解决方案1】:

    现在我明白了。它将所有内容记录到定义的传输中的日志级别。所以我想在不操纵顺序的情况下,不可能仅将调试流式传输到控制台和信息到日志。

    这不会在控制台中记录调试:

    new winston.transports.Console({
      level: 'info'
      handleExceptions: true
      json: false
      colorize: true
    })
    

    我的第一个假设是我可以为每个日志级别指定一个传输,然后决定我想要使用多少日志记录: winston.setLevels(winston.config.syslog.levels)

    例如 mongoDb 出错 信息到 log.log 文件 调试到控制台

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-19
      • 2014-01-19
      • 1970-01-01
      • 2016-08-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      相关资源
      最近更新 更多