Logging in XUL-Anwendungen

javascriptxul

In meiner Freizeit bastel ich ja öffters mal mit XUL und Firefox-Addons herum. Da ich ja eigentlich Java-Programmierer bin, habe ich mich auch an die ein oder andere Annehmlichkeit gewöhnt, die dort üblich ist. Eine dieser Annehmlichkeiten ist das Logging, das ja quasi in jedem Projekt wie selbstverständlich mit benutzt wird.

Der Logger ist ein Programmteil, dem man einfache Meldungen mitgeben kann, welche dieser bei der Ausführung anzeigt. Man kann dabei verschiedene Wichtigkeits-Stufen für einzelne Meldungen bestimmen und so festlegen, ob eine Meldung nun "nur" ein Debug-Hinweis ist oder gar einen schweren Fehler anzeigt. Vor der Ausführung kann man dann auch einstellen, ob man diesmal nur schwere Fehler sehen möchte oder auch unwichtige Meldungen. Wenn man seine Software z.B. fertig zum Kunden gibt, sollte man diesen schließlich vor reinen Entwickler-Hinweisen verschonen, während man beim Entwickeln gerne die ein oder andere Statusmeldung sehen möchte.

Wie gesagt: In Java üblich, bei XUL aber zumindest in der Standardausführung des XUL-Runners nicht vorgesehen bzw. zumindest nicht in diesem Funktionsumfang. Bei meinen bisherigen Basteleien in XUL war einer der Ersten Schritte deshalb immer, mir erstmal eine eigene kleine Logger-Funktion zu schreiben, die Meldungen in einem Text-Feld in der GUI ausgibt. Den Funktionsumfang wie oben beschrieben hatte ich dabei natürlich nicht, obwohl das ja eigentlich schon auch praktisch wäre.

Aus diesem Grund bin ich der Sache mal nachgegangen und bin auf zwei Logging-Frameworks für JavaScript gestoßen. Zum einen Log4JS, welches ebenfalls wie Log4J - der Quasi-Standard bei JAVA - vom Apache-Team entwickelt wird. Zum anderen Log4JavaScript. Beide machten beim testen in einer Webseite eine gute Figur jedoch funktionierte die Einbindung in XUL nicht so wirklich. Das ist natürlich verständlich, da der Fokus der Frameworks natürlich bei HTML-Dokumenten liegt und diese darauf ausgelegt sind. Ein Großteil der Funktionalität der Frameworks wird für XUL auch nicht benötigt. So kann Log4JS z.B. Logmeldungen über AJAX an einen Server übertragen. Dies ist für Webseiten durchaus interessant, macht aus meiner Sicht für XUL-Anwendungen oder BrowserAddons aber wenig Sinn.

Die Überlegung ging deshalb in die Richtung, aus meinen eigenen kleinen Logger-Basteleien eventuell ein auf XUL angepasstes Logging-Framework zu entwickeln. Wenn die Freizeit das zulässt, wäre dies eins meiner nächsten Projekte.