我在模块中编写代码,每个模块都可以单独调试。我想打开或关闭模块级别的console.log
消息,专注于我正在处理的模块。
我可以为每个模块设置_debug_
变量true
或false
,并写入日志消息,如
if(_debug_) {
console.log('The is a debug message.');
}
我发现这种方法有点麻烦。我能做得更好吗?
答案 0 :(得分:5)
如果要禁用调试语句,则可以在进入模块范围时劫持console
对象。这是生成替代“控制台”对象的简单方法:
function noopConsole()
{
var konsol = {};
function noop(){}
for (var k in window.console)
{
konsol[k] = noop;
}
return konsol;
}
然后,在模块的开头:
var console = _debug_ ? window.console || noopConsole();
就是这样。
答案 1 :(得分:2)
您可以在要停用日志记录的模块中重新定义console
。
没有记录的模块:
var console = {log: function(){}}
这假设每个模块都在自己的范围内。