Ich habe nun eine erste Version von log4xul fertig gestellt und bei
bitbucket hochgeladen. Bisher ist nur ein ein Log-Modus implementiert,
bei dem die Meldungen ganz normal auf die JavaScript-Fehlerkonsole geschrieben werden. Ich habe als Log-Level DEBUG,
INFO, WARN, ERROR sowie OFF vorgesehen. DEBUG ist für reine Debugging-Meldungen vorgesehen, die während der Entwicklung
bei der Fehlersuche interessant sind. In der Regel könnte man diese Meldungen nach dem Finden des entsprechenden Fehlers
wieder entfernen.
INFO ist für allgemeine Informationen zum Ablauf des Programms gedacht. Für Warnungen, die zwar kritisch sein können,
jedoch das Programm nicht unbedingt am weiteren Ausführen hindern, ist das Level WARN gedacht. Sinnvoll ist dies auch
beim Auftreten von Exceptions, die jedoch noch behandelt werden konnten.
Mit ERROR werden Fehlermeldungen gekennzeichnet, die ein weiteres Ausführen des Programms in der Regel unmöglich machen.
Die Level sind hierarchisch in der Reihenfolge DEBUG > INFO > WARN > ERROR > OFF gestaffelt wobei DEBUG das allgemeinste
Level ist und alle anderen Level einschließt. Ist das Level beispielsweise auf DEBUG gestellt, werden alle Meldungen
angezeigt. Ist das Level dagegen beispielsweise auf WARN gestellt, werden nur Meldungen der Stufe WARN und ERROR
angezeigt, die darüber liegenden Meldungen der Stufe Info und Debug jedoch nicht.
Somit kann man beispielsweise während dem Entwickeln das Level auf DEBUG stellen und damit sämtliche Meldungen anzeigen
lassen. Wenn die Entwicklung abgeschlossen ist, stellt man das Level zurück auf WARN und blendet damit alle DEBUG- und
INFO-Meldungen aus und lässt nur die kritischen ERROR- und WARN-Meldungen anzeigen. Mit OFF wird das Logging komplett
abgestellt.
Demo-Addon
Log4xul ansich ist kein Addon sondern nur eine JavaScript-Bibliothek, die in ein Addon eingebunden werden kann. Um dies
zu demonstrieren, habe ich ein Demo-Addon geschrieben, welches die Bibliothek verwendet. Dabei sind in der GUI bereits
weitere Logging-Modi (bei Log4j werden diese "Appender" genannt weshalb ich die Bezeichnung übernommen habe) vorgesehen,
die aber erst noch implementiert werden müssen.
Man wählt in der Demo die Appender aus, die man testen möchte und stellt den LogLevel ein. Mit einem Klick auf "Log"
wird die Meldung, die man in das Textfeld eingibt, geloggt. Intern werden dabei log-Aufrufe für alle Level ausgeführt,
es werden aber nur die jenigen angezeigt, dessen Level eingestellt ist.
Um auf die Demo zuzugreifen muss diese mit der xpi-Datei installiert werden. Danach kann die Demo über die Adresszeile
unter der URL "chrome://log4xul/content/log4xul_demo.xul" aufgerufen werden. Das Addon ist zwar prinzipiell
kompatibel zur Firefox-Version 4, allerdings ist dort die JavaScript-Konsole wohl etwas umgebaut worden, sodass aktuell
keine Meldungen angezeigt werden. Ausserdem fehlen noch Addons wie Console2 für FF4, die einen vernünftigen Umgang mit
der JavaScript-Console bieten.
Zu finden ist das Addon inklusive der Bibliothek unter
https://bitbucket.org/lestard/log4xul/overview
Viel Spaß beim Ausprobieren.