2010-09-13 8 views
20

Tengo un problema serio de JavaScript que es difícil de reproducir en cualquiera de nuestros entornos de desarrollo/prueba/prueba. Sin embargo, nuestros clientes lo informan constantemente. A veces creemos que es específico del navegador, a veces creemos que es específico de la acción, a veces creemos que está relacionado con las cookies. Es difícil y estamos siendo atraídos en muchas direcciones diferentes y todos se quedan cortos.¿La mejor manera de capturar errores de JavaScript en producción?

Creemos que el problema ocurre en uno de nuestros archivos JavaScript principales, pero ese archivo es enorme. Hemos señalado otros problemas en el pasado en este archivo, y resguardados contra problemas futuros al usar bloques try/catch con éxito, pero, en este momento, no estamos muy seguros de dónde están ocurriendo estos problemas más nuevos.

Hemos buscado a través de los registros de nuestro servidor y la información que encontramos no es útil.

Me pregunto si la utilización de un marco de registro JavaScript ayudaría a nuestros problemas. ¿Implementar algo como "log4javascript" capturar/registrar la actividad de nuestros usuarios, no solo nosotros? ¿Algún consejo? ¿Alguien más ha estado en esta situación? ¿Qué estrategias empleaste para comprender mejor tus errores?

+0

Sí, [log4js] (http://log4js.berlios.de/) o log4javascript son excelentes ideas. –

Respuesta

20

log4javascript AjaxAppender se puede utilizar para enviar mensajes de registro al servidor.

var log = log4javascript.getLogger("serverlog"); 
var ajaxAppender = new log4javascript.AjaxAppender("http://example.com/clientlogger"); 
log.addAppender(ajaxAppender); 

Se puede poner llamadas de registro de información en su código y agregar un controlador window.onerror para detectar errores no capturados por try/catch bloques en el código:

window.onerror = function(errorMsg, url, lineNumber) { 
    log.fatal("Uncaught error " + errorMsg + " in " + url + ", line " + lineNumber); 
}; 

También tendrá que crear algo en el servidor para procesar las solicitudes de registro desde el navegador.

Descripción completa: Soy el autor de log4javascript.

+0

gracias Tim - ¡Estoy investigando ahora! – rsturim

+2

I segundo AjaxAppender de log4javascript, hice solo el trabajo. Explicado aquí: http: //www.adamjamesnaylor.com/2012/10/10/Logging-Clientside-JavaScript-Errors-On-The-Server.aspx –

+0

Bugsnag hace esto ahora ... solo FYI –

Cuestiones relacionadas