温斯顿:了解伐木水平
我和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器,我习惯于使debug
比warn
更“精细”,logging器反向工作; 例如,将日志logging级别设置为info
,确实logging了所有内容但debug
(或其他)。
另外,如果我希望logging器只loggingerror
, warning
和info
消息,那么我怎样才能与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");