JavaScript Konsolenausgabe abfangen

Es kommt des öfteren vor das man eine Konsolenausgabe „verpasst“ meist ist dies ein Fehler den irgendeine JavaScript Funktion wirft. Nun kann man natürlich die Konsole permanent offen halten oder aber man hängt sich in die Eventkette eines Konsoleneintrages mit ein.

In diesem Tutorial möchte ich gerne beschreiben wie ich die Konsolenausgaben abfange, Sie aber trotzdem an die Konsole weitergeleitet werden. Quasi hängen wir uns zwischen in die „Eventkette“.

Browserkompatibilität

Da der Microsoft Internet Explorer hier wieder eine Sonderbehandlung bedarf nutze ich nicht nur jQuery sondern auch das Plugin „jquery-browser.js„. Das Plugin wird benötigt da jQuery ab der Version 1.9 den Support für die Browsererkennung eingestellt hat.

Ausgabe der Meldungen

Für die Ausgabe der späteren Meldungen (Log,Warning und Error) verwende ich das jQuery Plugin, „growl“ von Kevin Sylvestre.
Dieses Plugin ermöglicht kleine Meldungen im Browser darzustellen welche sich nach einer Zeit selbst entfernen.

Der JavaScript Code

Als erstes müssen wir uns beim Seitenaufruf an den Eventhandler der Konsole hängen, dazu überschreiben wir die Funktionen log,warn und error. Hier ist auch die Abfrage nach dem Browser enthalten, da wie eingangs beschrieben der Microsoft Internet Explorer eine Sonderbehandlung benötigt.

Hinweis:
In diesem Quellcode wird aus dem Parameter „argument“ welches ein Array ist das erste Element gewählt. Dieses muss umgeschrieben werden wenn alle Werte aus dem Array weitergeleitet werden sollen.

Nun noch die eigene Funktion für die Ausgabe der Meldung.

Funktion log

Die Funktion „log“ erwartet 2 Parameter einmal die Fehlerschwere und einmal die Message.  Natürlich kann man die Message auch in eine HTML Seite einbinden und mit CSS jeweils darstellen.

Ein einfaches jsfiddle

Für einen sofortigen Test möchte ich folgenden JavaScript Code über jsfiddle bereitstellen. Dieser Testcode ergibt folgende Ausgabe:

jsfiddle Ausgabe
jsfiddle Ausgabe

jsfiddle

 

 

Verwandte Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.