Event-Handler zum loggen von JavaScript-Fehlern
Wie mit JavaScript-Fehler auf einer Website umgehen? Eine Lösung sieht so aus, daß ein onerror-Event-Handler global alle JavaScript-Fehler behandelt und diese auf dem Server loggt. Dieses Logging geschieht dann ausschließlich im Produktiv-Modus der Website - während der Entwicklung werden die Fehler nicht behandelt und erscheinen als entsprechende Meldung im Browser oder in der Firebug-Konsole. Das Logging wiederum ist so gelöst, daß eine 1x1 Pixel große transparente Gif-Grafik vom Server geladen wird. Diesem Aufruf werden dann die zu loggenden Daten (Fehlermeldung, Seite, Zeilennummer, User-Agent) mitgegeben. Das Prinzip wird bei Wikipedia erklärt.
Schaut man sich die geloggten Fehler an, erkennt man schnell, daß sich diese teilweise nicht in der Entwicklungsumgebung reproduzieren lassen. Ursachen dafür können ungewöhnliche Browser sein, oft gepaart mit ganz besonderen Umständen oder Bedienungseigenarten durch den User. Das heißt, neben durchaus nachvollziehbaren und behandelbaren Fehlern gibt es auch immer ein gewisses Fehler-Grundrauschen, mit dem man einfach leben muß.
Auffällig ist dabei, daß es in gewisser Regelmäßigkeit zu einem Fehler kommt, der ebenfalls zu diesem Grundrauschen zu zählen ist. Die Fehlermeldung lautet immer "Error loading script" und ist eine besondere Meldung des Firefox. Was es damit auf sich hat, kann hier nachgelesen werden. Da dieser Fehler ca. die Hälfte aller geloggten Fehler ausmacht, ohne daß man ihn zuverlässig verhindern kann, habe ich ihn heute durch eine entsprechende Abfrage vom Logging ausgeschlossen.
Das Thema Fehlerbehandlung läßt sich beliebig ausbauen. Es ist denkbar, die geloggten Daten in einem Tool bereitzustellen, daß es erlaubt, diese auf bestimmte Projekte, Seiten oder Fehlermeldungen einzuschränken. Auch eine automatische Benachrichtigung per E-Mail bei einer ungewöhnlich großen Anzahl auftretender Fehler wäre denkbar. Letztendlich könnte man die Fehler auch in einer Art Live-Ticker nachverfolgbar machen. Die Fehler würden dann ohne Verzögerung durch Techniken wie Comet direkt an eine Webseite oder ein Desktop-Widget kommuniziert werden.
Archive
- Februar 2012 (1)
- Oktober 2011 (1)
- August 2011 (2)
- April 2011 (1)
- Oktober 2010 (6)
- September 2010 (5)
- August 2010 (3)
- Juli 2010 (2)
- Juni 2010 (3)
- Mai 2010 (9)
- April 2010 (8)
- März 2010 (13)
- Februar 2010 (10)
- Januar 2010 (11)
- Dezember 2009 (8)
- November 2009 (6)
- Oktober 2009 (10)
- September 2009 (9)
- August 2009 (12)
- Juli 2009 (16)
- Das Neueste ...
- Älteres ...