gpt4 book ai didi

node.js - winston : understanding logging levels

转载 作者:IT老高 更新时间:2023-10-28 23:01:41 26 4
gpt4 key购买 nike

阅读和摆弄 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");,那么什么都不会发生。

我遇到的问题是,如果我想登录控制台everything 但是 debug 消息,我该怎么办? ...甚至是 debug and info 消息,但记录其他所有内容?

来自 Java 世界,使用标准记录器,我习惯于让 debugwarn 更“细粒度”,并且记录器向后工作;例如,将日志级别设置为 info 会记录除 debug(或其他内容)之外的所有内容。

另外,如果我希望记录器只记录 errorwarninginfo 消息,我该怎么做? winston ?

* 编辑 *

显然,这种级别的顺序是 winston.config.syslog.levels 独有的。所以剩下的唯一问题是:“是否有可能以某种方式将传输限制为仅非常特定的日志记录级别?”

最佳答案

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

所以,这里有一个例子:

logger = new (winston.Logger)({
levels: {
'info': 0,
'ok': 1,
'error': 2
}
transports: [
new (winston.transports.ConsoleTransport)(silent: options.silent, level: 'ok')
]
});

关于node.js - winston : understanding logging levels,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20931089/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com