为了账号安全,请及时绑定邮箱和手机立即绑定

如何快速方便地禁用代码中的所有控制台日志语句?

如何快速方便地禁用代码中的所有控制台日志语句?

慕村225694 2019-07-22 14:51:46
如何快速方便地禁用代码中的所有控制台日志语句?有没有办法关掉所有console.log用于测试目的JavaScript代码中的语句?
查看完整描述

3 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

在脚本中重新定义控制台日志函数。

console.log = function() {}

仅此而已,没有更多的信息来安慰。

编辑:

扩展了塞德的想法。一个自定义记录器,您可以使用它从代码中切换登录/关闭。

在我的Firefox控制台上:

var logger = function(){
    var oldConsoleLog = null;
    var pub = {};

    pub.enableLogger =  function enableLogger() 
                        {
                            if(oldConsoleLog == null)
                                return;

                            window['console']['log'] = oldConsoleLog;
                        };

    pub.disableLogger = function disableLogger()
                        {
                            oldConsoleLog = console.log;
                            window['console']['log'] = function() {};
                        };

    return pub;}();$(document).ready(
    function()
    {
        console.log('hello');

        logger.disableLogger();
        console.log('hi', 'hiya');
        console.log('this wont show up in console');

        logger.enableLogger();
        console.log('This will show up!');
    }
 );

如何使用上面的“记录器”?在就绪事件中,调用logger.disableLogger,这样就不会记录控制台消息。在要将消息记录到控制台的方法中添加对logger.enableLogger和logger.disableLogger的调用。


查看完整回答
反对 回复 2019-07-22
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

以下内容更为彻底:

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(){};
    }}


查看完整回答
反对 回复 2019-07-22
?
MM们

TA贡献1886条经验 获得超2个赞

据我所知文献资料,Firebug不提供任何变量来切换调试状态。相反,在有条件地调用它的包装器中包装控制台.log(),即:

DEBUG = true; // set to false to disable debuggingfunction debug_log() {
    if ( DEBUG ) {
        console.log.apply(this, arguments);
    }}

要避免更改所有现有调用,可以使用以下方法:

DEBUG = true; // set to false to disable debuggingold_console_log = console.log;console.log = function() {
    if ( DEBUG ) {
        old_console_log.apply(this, arguments);
    }}


查看完整回答
反对 回复 2019-07-22
  • 3 回答
  • 0 关注
  • 575 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号