据我所知,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/
答案 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文件 调试到控制台