阅读和摆弄 Winston,我对为什么日志记录级别按原样排序以及为什么传输以它们的方式运行(嗯,至少是控制台之一)感到困惑。如果有人可以(甚至可能是彻底地)通过真实的用例示例解释为什么使用 Winston 进行日志记录以这种方式工作,我将不胜感激?
例如,我这样设置我的记录器:
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");
,那么它会记录下来debug: Test
,很好。但如果我这样做logger.info("Test");
,那么什么也不会发生。
我遇到 的问题是,如果我想将除消息之外的所有内容都登录到控制台, debug
我该怎么办?...甚至debug
和 info
消息,但记录其他所有内容?
来自 Java 世界,使用标准记录器,我习惯于debug
比记录器更“细粒度”,warn
并且记录器向后工作;info
例如,将日志记录级别设置为 确实记录了除debug
(或其他)之外的所有内容。
另外,如果我希望记录器只记录和消息error
,我将如何使用 Winston 来做到这一点?warning
info
* 编辑 *
显然,这种等级顺序是winston.config.syslog.levels
. 所以剩下的唯一问题是:“是否有可能以某种方式将传输限制为仅非常特定的日志记录级别?”