winston日志级别/隐藏日志级别

时间:2015-04-16 16:40:45

标签: node.js winston

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

问题1):

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

问题2)

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

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/

1 个答案:

答案 0 :(得分:1)

现在我有了这个概念。它将所有内容记录到定义的传输中的日志级别。所以我想在不操作订单的情况下,无法将调试仅仅调度到控制台和信息到日志。

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

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

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

e.g。 错误到mongoDb info to log.log文件 调试到控制台