gpt4 book ai didi

javascript - 在 Bunyan 的控制台中显示调试消息

转载 作者:太空宇宙 更新时间:2023-11-04 00:44:35 26 4
gpt4 key购买 nike

child.log.info('info');
child.log.debug('debug');

我使用以下命令:

node app.js | bunyan -o short -l debug

但是它只显示信息。不显示调试。我想在控制台中显示调试消息,我做错了什么?

最佳答案

当您创建记录器时,请使用level选项设置bunyan发出日志消息的级别:

var log = bunyan.createLogger({ level: "debug" });

同样,使用level选项设置子记录器发出日志消息的级别:

var child = log.child({ level: "debug" });

实例化时设置的这个level选项决定了bunyan发出的日志消息的最低级别。

命令行开关 -l (或 --level )只是一个过滤器;它允许通过在给定级别或更高级别发出的消息。 但是,它不会设置您的bunyan 实例发出的日志消息的最低级别。

例如,假设我想要一个在“debug”级别或更高级别发出日志消息的bunyan实例。我可以将以下内容放入 main.js 中:

var bunyan = require("bunyan");
var log = bunyan.createLogger({ level: "debug" });

log.trace("Nitty gritty info here.");
log.debug("Eek ork op.");
log.info("The Red Zone is for loading and unloading only.");

如果我从命令行运行以下命令:

node main.js | bunyan

我将在输出中看到这一点:

Eek ork op.
The Red Zone is for loading and unloading only.

请注意,我没有从命令行过滤任何内容,并且对 log.trace() 的调用也没有打印任何内容。

现在,在命令行中输入:

node main.js | bunyan -l "debug"

你会得到:

Eek ork op.
The Red Zone is for loading and unloading only.

和以前一样。

现在,尝试:

node main.js | bunyan -l "trace"

您仍然会得到与以前相同的输出。

为什么?因为您的 Bunyan 实例设置为在 "debug" 级别或更高级别发出消息。命令行开关 -l 只是一个过滤器。

最后,尝试一下:

node main.js | bunyan -l "info"

这一次,您只会看到:

The Red Zone is for loading and unloading only.

log.debug() 的调用已被过滤掉。

关于javascript - 在 Bunyan 的控制台中显示调试消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35274158/

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