Ответ 1
Вы можете использовать регулярные выражения.
Например, чтобы исключить слово browser-sync
, я использую ^((?!browser-sync).)*$
.
См. также здесь
Chrome 44.0.2403.125
Я получаю много шума от вывода сторонней страницы, с которой я сейчас играю, и мне интересно, есть ли способ отфильтровать вывод на консоли. Что-то вроде флагов Logcat. Есть ли способ сделать это?
ИЗМЕНИТЬ
Я нашел способ отключить вывод, который вызывал наибольшее количество шума. Я щелкнул правой кнопкой мыши на консоли и отключил опцию XMLHttpRequest Logging
. Это не то, что я хотел, но это то, что мне нужно.
Вы можете использовать регулярные выражения.
Например, чтобы исключить слово browser-sync
, я использую ^((?!browser-sync).)*$
.
См. также здесь
Chrome 44.0.2403.125
Далее, чем приведенные выше ответы на комментарии.
Перейдите в консольный режим (Control Shift J в Windows), введите следующее:
console.nativeLog = console.log;
Затем введите
console.log = function( a, b ){ if(a=="extension") console.nativeLog( b ) }
Первая строка сохраняет встроенную реализацию в безопасном месте. Вторая строка делает в значительной степени то, что вы запрашиваете.
Работает для меня.
Я просто писал о своем решении. Я модифицировал библиотеку Ben-Alman "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:
Если вы контролируете скрипты страницы и расширения, вы можете запускать их через свою собственную функцию. В этой функции вы можете теперь управлять выходом.
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()
Это то, что я написал для решения одной и той же проблемы. По сравнению с предыдущими ответами, это позволяет правильно обрабатывать несколько аргументов 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) {};
};
})();