gpt4 book ai didi

javascript - node.js 的调试模块 : how to avoid this tedious initialization?

转载 作者:行者123 更新时间:2023-11-29 21:55:17 25 4
gpt4 key购买 nike

node.js' debug 模块确实很整洁。我想知道是否有任何方法可以防止每个模块中这种繁琐且过于冗余的初始化:

require('debug').enable('module-name:log module-name:ERROR');
var log = require('debug')('module-name:log');
var error = require('debug')('module-name:ERROR');

如您所见,它在两个不同的层面上是多余的:我需要在实例化记录器之前“启用”它们,将相同的名称作为字符串发送两次,并且我需要写下模块名称。有什么方法可以自动执行此操作吗?

最佳答案

几个月前,我偶然发现了同样的问题,但由于找不到我创建的任何解决方案 debug-logger . debug-logger 是 visionmedia/debug 的包装器,它将为您提供在不同级别/命名空间进行日志记录的方法。例如:

var log = require('debug-logger')('myapp');

log.trace("I'm a trace output");
log.debug("I'm a debug output");
log.log("I'm a log output");
log.info("I'm an info output");
log.warn("I'm a warn output");
log.error("I'm an error output");

将打印:

myapp:trace I'm a trace output +0ms
myapp:debug I'm a debug output +2ms
myapp:log I'm a log output +0ms
myapp:info I'm an info output +0ms
myapp:warn I'm a warn output +1ms
myapp:error I'm an error output +0ms

以适当的颜色。它的可配置性也很强。

这应该可以解决您的第二个问题。对于第一个问题,在实例化 debug/debug-logger 之前,您可以使用环境变量 DEBUG,例如:

export DEBUG=*

这将启用所有日志级别/命名空间。或者,如果您想在 Node 内执行此操作:

process.env.DEBUG='*';

如果这不能完全回答您的问题,请告诉我。

关于javascript - node.js 的调试模块 : how to avoid this tedious initialization?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26777433/

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