2011-07-26 11 views
7

Estoy trabajando en una aplicación web que se lanzará a unos pocos usuarios para realizar pruebas. Obviamente van a haber errores, así que me gustaría capturarlos para que sea más fácil desarrollar correcciones. ¿Hay alguna forma de interceptar los mensajes de la consola (tanto los errores del navegador/js como los generados con console.log) en mi aplicación web, para poder enviarlos a un servicio de registro en el servidor y tenerlos disponibles para la depuración?Interceptar mensajes de la consola del navegador web

Respuesta

5

Sí.

Interceptar llamadas console.log():

console['log'] = function(msg){ 
    // do wahtever you need with msg here 
} 

errores Interceptar (los denominados pañales anti-patrón):

try { 
    // your app's code 
} catch(err) { 
    // do what you to do in case of error need here 
} 

Aquí está la prueba: jsfiddle.

Sin embargo, le sugiero que cree su propia función, que manejará el propósito de console.log() y podría apagarse durante la producción. Además, funcionará correctamente (es decir: no lanzará errores), cuando el navegador no admita llamadas console.log(). Esto podría parecer que:

window['log'] = function(msg){ 
    if (typeof console != 'undefined' && typeof console.log != 'undefined'){ 
     console.log(msg); 
    } 
} 
+0

¿Algún consejo sobre cómo obtener este trabajo para IE7 también? Acabo de agregar el último fragmento que proporcionó en su respuesta, pero la consola aún no está definida en IE7. –

1

Un poco tarde ... esto puede ser una lectura interesante, sólo hay que poner en práctica el método para enviar al servidor, pero eso es trivial. Taking Over console.log

Cuestiones relacionadas