Log4xul - Erste Version fertig gestellt.
javascriptxulIch 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.