Есть ли способ отфильтровать вывод в консоли Google Chrome? - PullRequest
24 голосов
/ 12 июля 2011

Я получаю много шума от вывода сторонней страницы, с которой я сейчас играю, и мне интересно, есть ли способ отфильтровать вывод на консоли. Что-то вроде флагов Logcat. Есть ли способ сделать это?

EDIT

Я нашел способ отключить выход, который вызывал наибольшее количество шума. Я щелкнул правой кнопкой мыши на консоли, а затем отключил параметр XMLHttpRequest Logging. Это не то, что я хотел, а то, что мне было нужно.

Ответы [ 5 ]

22 голосов
/ 31 июля 2015

Вы можете использовать регулярные выражения.

Например, чтобы исключить слово browser-sync Я использую ^((?!browser-sync).)*$.

enter image description here

Смотри также здесь


Chrome 44.0.2403.125

19 голосов
/ 21 июля 2011

Пройдя дальше, чем приведенные выше комментарии к комментариям ..

Перейдите в консольный режим (Control Shift J в Windows), введите:

console.nativeLog = console.log;

Затем введите

console.log = function( a, b ){ if(a=="extension") console.nativeLog( b ) }

Первая строка хранит нативную реализацию в безопасном месте.Вторая строка в значительной степени выполняет то, что вы запрашиваете.

У меня работает.

3 голосов
/ 07 сентября 2011

Я только что написал в блоге о своем решении этого. Я изменил библиотеку Бена Алмана «ba-debug» и создал модульный объект «Trace», предназначенный для использования с различными модулями или областями кода (определенными вами).

Основное использование:

   var _trace = new Trace('ModuleName');

Затем, когда вы хотите отследить любой уровень диагностики, вы делаете:

   _trace.error('error level message');
   _trace.warn('warning level message');
   _trace.info('information level message');
   _trace.log('log level message');
   _trace.debug('debug level message');

Затем на своей странице или в консоли вы можете сделать следующее:

   Trace.traceLevel('ModuleName', Trace.Levels.warn); 

Вот мой блог post для более подробной информации и файла JavaScript:

2 голосов
/ 12 июля 2011

Если у вас есть контроль над скриптами страницы и расширения, вы можете запускать оба через свою собственную функцию.В этой функции теперь вы можете управлять выводом.

var pageErrors = true;
var extErrors = true;

function outputToConsole(message, sender) {
   if (sender == 'page' && pageErrors) { console.write(message); }
   if (sender == 'ext' && extErrors) { console.write(message); }
}

Везде, где вы хотите войти, замените console.log на outputToConsole ()

0 голосов
/ 28 апреля 2014

Это то, что я только что написал, чтобы решить ту же проблему.По сравнению с предыдущими ответами он имеет преимущество правильной обработки нескольких аргументов для console.log и предотвращения отсутствия window.console.log для выдачи необработанных исключений.

(function(){
    window.console = window.console||{log:0};
    var nativeLog = window.console.log;
    window.console.log = function() { 
        try {
            // these conditions find all console.log output
            // from bitcoinjs-0.1.3 but not much else
            // (who else ends an extremely short first parameter with a space?)
            if ((arguments.length == 2) 
              && (arguments[0].length <= 5) 
              && (arguments[0].slice(-2) === ': ')
            ) {
                return;
            };
            nativeLog.apply(window.console, arguments);
        } catch(e) {};
    };
})();
...