2011-03-16 16 views
187

Me pregunto si alguien tuvo experiencia en el manejo global de errores de JavaScript y los envió desde el navegador del cliente a un servidor.Captura todos los errores de JavaScript y envíalos al servidor

Creo que mi punto es bastante claro, quiero saber cada excepción, error, error de compilación, etc. que ocurre en el lado del cliente y enviarlos al servidor para informarlos.

Principalmente estoy usando MooTools y head.js (para el lado JS) y Django para el lado del servidor.

+14

No veo por qué esta pregunta no está clara. –

+2

Votó dos veces para volver a abrir la pregunta, pero sin suerte. No está claro por qué esta pregunta está cerrada por poco clara. – Usman

+3

@ andrew-barber: si tantos usuarios consideran que esta pregunta es lo suficientemente relevante como para recomendarla, quizás, si no está claro, el problema es contigo. – isapir

Respuesta

14

Recientemente he probado Sentry en la producción y funciona bien (JS y otros lenguajes como PHP)

1- Es de código abierto (Se puede instalar en su propio servidor) 2- Puede utilizar el plan gratuito (100 informes/día)

o instalarlo en ur servidor: https://github.com/getsentry

+0

Tenga en cuenta que tienen un plan gratuito ilimitado para instituciones educativas – christianvuerings

+7

Ya no parece ser de código abierto, todas las opciones se pagan? –

+4

@DavidCumps Aún ofrecen el servicio gratuito (Prueba), pero solo obtiene 7 días de historial de errores o puede instalarlo en su propio servidor ya que es de código abierto (https://github.com/getsentry) – Tarek

276

Me echa un vistazo a window.onerror

Ejemplo:

window.onerror = function(message, url, lineNumber) { 
    //save error and send to server for example. 
    return true; 
}; 

Tenga en cuenta que la devolución de cierto evitará que el disparo del controlador predeterminado, y volviendo falsa a dejar correr el controlador predeterminado.

+0

¿Se llamará a esta función en la página html principal, si hay algún problema al cargar otros archivos js? –

+6

Desea asignar window.onerror preferiblemente antes de ejecutar cualquier otra cosa. Entonces, donde sea que lo quiera poner, solo asegúrese de que se ejecute antes que cualquiera de sus otros códigos/archivos js. –

+0

ok gracias por su respuesta rápida –

0

Quizás quieras echar un vistazo a este nuevo servicio, http://rescuejs.com/.

Le permite registrar todos sus errores de javascript sin escribir el código del lado del servidor usted mismo. También rastrea las versiones del navegador, etc.

No estoy seguro de que los considere 100% "listos para la empresa", pero definitivamente vale la pena echarle un vistazo.

+6

Ha sido cerrado. Si intenta registrarse ahora recibirá el mensaje "Gracias por su interés, lamentablemente Rescue.js ya no se está trabajando activamente". – Day

+3

Parece que ha sido adquirido por Bugsnag https://bugsnag.com/ – Todilo

3

Además, el servicio http://jslogger.com puede ayudar con eso:

Log Javascript errors and events in the cloud

de http://jslogger.com/features:

From now on you can spy on all the errors that break your site's user experience. Every Javascript error will be caught and brought to you for later debuging.

AVISO: no está afiliado con el servicio/empresa.

+11

Mi extensión de cromo "nube a tope" me hizo reír en este caso: 'Registrar errores y eventos de Javascript en mi trasero ' – Kayvar

+1

@Kayvar lol ¿por qué hiciste esa extensión? –

+1

@Alex jajaja ¡No lo hice pero lo descargué! ¡Bien vale la pena! Vaya, dije: "Mi">. Kayvar

3

Puede probar Atatus - Se trata de un nuevo servicio de seguimiento de errores de JavaScript junto con Real User Monitoring (RUM) para aplicaciones web modernas.

No solo capturamos los errores, sino también los eventos del usuario que desencadenaron el error. Esto le da los pasos para reproducir el error al final.

Junto a la captura de errores, también capturamos el tiempo de carga de la página y lo mostramos a través de diferentes perspectivas: Geo, Navegador, Perforar página, Histograma de página, Monitoreo Ajax y Monitoreo de transacciones.

https://www.atatus.com/

Docs available: https://www.atatus.com/docs

Descargo de responsabilidad: Soy un desarrollador web en Atatus.

+0

integé Ataus, y que probé algo como foo.bar = '' que causaba una excepción. Pero no puedo ver nada en el tablero de Atatus. – vmachacek

+0

¿Podría enviarnos un correo electrónico? –

Cuestiones relacionadas