出于测试目的,有什么方法可以关闭我的 JavaScript 代码中的所有 console.log
语句?
原文由 Zack Burt 发布,翻译遵循 CC BY-SA 4.0 许可协议
出于测试目的,有什么方法可以关闭我的 JavaScript 代码中的所有 console.log
语句?
原文由 Zack Burt 发布,翻译遵循 CC BY-SA 4.0 许可协议
下面说的比较透彻:
var DEBUG = false;
if(!DEBUG){
if(!window.console) window.console = {};
var methods = ["log", "debug", "warn", "info"];
for(var i=0;i<methods.length;i++){
console[methods[i]] = function(){};
}
}
这会将控制台中的常用方法清零(如果存在),并且可以毫无错误地调用它们,并且几乎没有性能开销。对于像 IE6 这样没有控制台的浏览器,将创建虚拟方法以防止错误。当然,Firebug 中还有更多的功能,如跟踪、配置文件、时间等。如果您在代码中使用它们,可以将它们添加到列表中。
您还可以检查调试器是否具有这些特殊方法(即 IE),并将它不支持的方法清零:
if(window.console && !console.dir){
var methods = ["dir", "dirxml", "trace", "profile"]; //etc etc
for(var i=0;i<methods.length;i++){
console[methods[i]] = function(){};
}
}
原文由 mwilcox 发布,翻译遵循 CC BY-SA 2.5 许可协议
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
在脚本中重新定义 console.log 函数。
就是这样,没有更多的消息要控制台。
编辑:
扩展 Cide 的想法。一个自定义记录器,您可以使用它来从您的代码中切换登录/关闭。
从我的 Firefox 控制台:
如何使用上面的“记录器”?在您的就绪事件中,调用 logger.disableLogger 以便不记录控制台消息。在要将消息记录到控制台的方法中添加对 logger.enableLogger 和 logger.disableLogger 的调用。