温斯顿:了解伐木水平

我和Winston读了一遍,弄不明白为什么日志级别是按照它们的顺序排列的,以及为什么这些传输方式的行为方式(至less在控制台方面)。 我很感激,如果有人可以甚至彻底地用真实的用例来解释为什么用Winston进行日志logging是这样工作的?

例如,我设置我的logging器是这样的:

var logger = new (winston.Logger)({ levels: winston.config.syslog.levels, colors: winston.config.syslog.colors, level: "debug", // I'm not sure what this option even does here??? transports: [ new (winston.transports.Console)({ colorize: true, handleExceptions: true, json: false, level: "debug" }) ] }); 

所以,如果我做logger.debug("Test"); ,那么它会loggingdebug: Test ,罚款。 但是,如果我做logger.info("Test"); ,那么没有任何反应。

我的问题是,如果我想logging到控制台, 但除了 debug消息,我该怎么办? …甚至debug info消息,但logging一切吗?

来自Java世界,使用标准的logging器,我习惯于使debugwarn更“精细”,logging器反向工作; 例如,将日志logging级别设置为info ,确实logging了所有内容但debug (或其他)。

另外,如果我希望logging器只loggingerrorwarninginfo消息,那么我怎样才能与Winston做到这一点?

*编辑*

显然,这个级别的顺序对winston.config.syslog.levels是唯一的。 所以剩下的唯一问题是:“是否有可能将交通工具限制在特定的日志级别?

根据文档 ,您可以设置自己的logging级别,0最低,并将颜色与它关联。 现在,如果您不想logging最低级别,只需将level属性设置为相应级别即可。 默认情况下,控制台logging器将其级别设置为info

所以,这里是一个例子:

 logger = new (winston.Logger)({ levels: { 'info': 0, 'ok': 1, 'error': 2 } transports: [ new (winston.transports.ConsoleTransport)(silent: options.silent, level: 'ok') ] }); 
 var logger = new (winston.Logger)({ levels: { 'info': 0, 'ok': 1, 'error': 2 }, colors: { 'info': 'red', 'ok': 'green', 'error': 'yellow' }, transports: [ new (winston.transports.Console)({level:'info',colorize: true}) ] }); logger.log('info',"This is info level"); logger.info("This is info level");