Je me demandais si quelqu'un avait l'expérience de la gestion globale des erreurs JavaScript et de les envoyer du navigateur client à un serveur.
Je pense que mon propos est clair: je veux connaître toutes les exceptions, erreurs, erreurs de compilation, etc. qui se produisent côté client et les envoyer au serveur pour les signaler.
J'utilise principalement MooTools et head.js
(pour le côté JS) et Django pour le côté serveur.
J'ai récemment testé Sentry sur la production et cela fonctionne très bien (JS et d'autres langages comme PHP)
1- C'est open source (vous pouvez l'installer sur votre propre serveur) 2- Vous pouvez utiliser le forfait gratuit (100 rapports/jour)
Ou installez-le sur votre serveur: github.com/getsentry
Je vérifierais window.onerror
Exemple:
window.onerror = function(message, url, lineNumber) {
//save error and send to server for example.
return true;
};
Gardez à l'esprit que renvoyer vrai empêchera le lancement du gestionnaire par défaut, et renvoyer faux laissera le gestionnaire par défaut s'exécuter.
Si votre site utilise Google Analytics, vous pouvez faire ce que je fais:
window.onerror = function(message, source, lineno, colno, error) {
if (error) message = error.stack;
ga('send', 'event', 'window.onerror', message, navigator.userAgent);
}
Quelques commentaires sur le code ci-dessus:
Une fois le code en place, procédez comme suit pour afficher les erreurs Javascript de vos utilisateurs:
Behavior
, puis sur la section Top Events
rapport.window.onerror
dans la liste.Secondary dimension
et en entrant Event Label
dans la zone de texte qui apparaît.En outre, le service http://jslogger.com peut vous aider:
Journalise les erreurs et événements Javascript dans le nuage
de http://jslogger.com/features :
Vous pouvez désormais espionner toutes les erreurs qui perturbent l'expérience utilisateur de votre site. Chaque erreur Javascript sera interceptée et vous sera présentée pour un débogage ultérieur.
AVERTISSEMENT: non affilié au service/entreprise.
Vous pouvez essayer Atatus - Il s’agit d’un nouveau service de suivi des erreurs JavaScript associé à la surveillance des utilisateurs réels pour les applications Web modernes.
Nous ne capturons pas seulement les erreurs, mais également les événements utilisateur qui ont déclenché l’erreur. Cela vous donne des étapes pour reproduire l'erreur de votre côté.
En plus de la capture d’erreurs, nous capturons également le temps de chargement de la page et l’indiquons sous différentes perspectives - Géo, Navigateur, Exploration de la page, Histogramme de page, Surveillance Ajax et Surveillance des transactions.
Documents disponibles: https://www.atatus.com/docs
Disclaimer: Je suis développeur web chez Atatus.
N'essayez pas d'utiliser des services tiers, essayez plutôt les vôtres.
Les gestionnaires d'erreur peuvent attraper les scénarios ci-dessous,
Pour attraper les erreurs Javascript:
window.addEventListener('error', function (e) {
//It Will handle JS errors
})
Pour capturer les erreurs AngularJS:
app.config(function ($provide) {
$provide.decorator('$exceptionHandler', function ($delegate) {
return function (exception, cause) {
//It will handle AngualarJS errors
}
})
})