有没有办法关闭console.log我的JavaScript代码中的所有语句,以进行测试?
我正在使用MEAN,Angular 2,Node/Express,Angular-CLI和ng build --prod构建我的应用程序,我对我的应用程序中的一次性注释代码和十亿次调试console.log语句进行了讽刺.有没有办法让构建过程在构建时删除所有注释和console.log语句?手动做的想法是可怕的!
我有一个大型谷歌应用程序脚本,将大量日志行写入日志资源管理器。我希望能够根据需要禁用或启用日志记录。
下面的代码似乎在浏览器上按预期工作。这里allowlog是在代码中设置的,但它将从外部源检索。这对于本文的目的来说并不重要。
如果需要,自解压功能会覆盖console.log并阻止日志记录。
let allowLog = false;
function func1(){
console.log("func1 log msg");
}
(function(){
//test log 1
console.log("self extracting");
//keep ref to global console.log
const _consolelog = console.log;
//test log 2 - verify it works
_consolelog("self extracting2");
//override global console.log
console.log = function(val){
if (allowLog){
_consolelog(val);
_consolelog("allowing");
}else{
_consolelog("log disabled");
}
}
})();
Run Code Online (Sandbox Code Playgroud)
此代码不适用于谷歌应用程序脚本,并且日志继续写入。
在应用程序脚本中,我可以 在加载模块时查看console.log("self extracting");并 记录消息。_consolelog("self extracting2");然而,当func1调用日志时,即使allowLog = false.
_consolelog("allowing");也_consolelog("log disabled");没有记录。全局console.log不会被覆盖。
这是为什么,以及如何(如果有的话)可以修复它?
上述代码的预期日志为 …