Javascript node.js';调试模块:如何避免这种繁琐的初始化?

Javascript node.js';调试模块:如何避免这种繁琐的初始化?,javascript,node.js,debugging,logging,error-logging,Javascript,Node.js,Debugging,Logging,Error Logging,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'); 正如您所看到的,它在两个不同的级别上是冗余的:我需要在实例化

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是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=*
这将启用所有日志级别/名称空间。或者,如果要在节点内执行此操作:

process.env.DEBUG='*';
如果这不能完全回答你的问题,请告诉我