1. ホーム
  2. ジャバスクリプト

[解決済み】コード内のすべてのconsole.logステートメントを迅速かつ便利に無効にする方法は?

2022-03-28 16:20:01

質問

をすべてオフにする方法はありますか? console.log ステートメントをテスト目的で使用することはできますか?

どのように解決するのですか?

スクリプト内でconsole.log関数を再定義してください。

console.log = function() {}

以上で、コンソールへのメッセージはなくなりました。

EDITです。

Cideさんのアイデアを発展させたものです。あなたのコードからロギングのオン/オフを切り替えるために使用することができるカスタムロガー。

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」を使うには?Readyイベントで、logger.disableLoggerを呼び出し、コンソールメッセージをログに記録しないようにします。コンソールにメッセージを記録したいメソッド内に logger.enableLogger と logger.disableLogger の呼び出しを追加してください。