para - depurar javascript chrome
¿Hay alguna forma de filtrar la salida en la consola de Google Chrome? (5)
Acabo de bloguear sobre mi solución a esto. Modifiqué la biblioteca "ba-debug" de Ben Alman e hice un objeto modular "Trace" diseñado para ser usado con diferentes módulos o áreas del código (definido por usted).
Uso básico:
var _trace = new Trace(''ModuleName'');
Luego, cuando quiere rastrear cualquier nivel de diagnóstico, usted hace:
_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'');
Luego, en tu página, o en tu consola, puedes hacer esto:
Trace.traceLevel(''ModuleName'', Trace.Levels.warn);
Aquí está la publicación de mi blog para más detalles y el archivo JavaScript:
Estoy recibiendo mucho ruido de la salida de la página de la tercera parte con la que estoy jugando actualmente y me pregunto si hay una manera de filtrar la salida en la consola. Algo así como las banderas de Logcat. ¿Hay una manera de hacerlo?
EDITAR
Encontré una manera de deshabilitar la salida que estaba causando la mayor cantidad de ruido. Hice clic con el botón derecho en la consola y luego deshabilité la opción de XMLHttpRequest Logging
. No es lo que quería, pero es lo que necesitaba.
Esto es lo que acabo de escribir para resolver el mismo problema. En comparación con las respuestas anteriores, tiene la ventaja de manejar adecuadamente múltiples argumentos en console.log
y de prevenir la ausencia de window.console.log para generar excepciones no detectadas.
(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) {};
};
})();
Si tiene control tanto de la página como de los scripts de extensión, puede ejecutar ambos a través de su propia función. En esa función ahora puedes controlar la salida.
var pageErrors = true;
var extErrors = true;
function outputToConsole(message, sender) {
if (sender == ''page'' && pageErrors) { console.write(message); }
if (sender == ''ext'' && extErrors) { console.write(message); }
}
En cualquier lugar donde desee iniciar sesión, reemplace console.log con outputToConsole ()
Yendo más allá de los comentarios de respuesta anteriores.
Vaya al modo consola (Control Shift J en Windows), ingrese esto:
console.nativeLog = console.log;
Entonces ingresa este
console.log = function( a, b ){ if(a=="extension") console.nativeLog( b ) }
La primera línea mantiene la implementación nativa en un lugar seguro. La segunda línea hace más o menos lo que pides.
Funciona para mi.