Logging-System


Table of Contents

1. Logging-System - internals.logging.xsl
2. Index

1. Logging-System - internals.logging.xsl

Filename: internals.logging.xsl

$Revision: 37 $, $Date: 2011-06-26 22:53:01 +0200 (Sun, 26 Jun 2011) $

Dieses Stylesheet stellt ein API für das Logging zur Verfügung. Die Templates sind nicht zur direkten Benutzung gedacht; vielmehr sollen externe Wrapper dieses API nutzen. Dadurch kann der Logging-Unterbau ggfs. ausgetauscht werden.

Autor: Stefan Krause

Homepage: http://www.expedimentum.org/

Lizenz (duale Lizenzierung):

Dieses Stylesheet und die dazugehörige Dokumentation sind unter einer Creative Commons-Lizenz (CC-BY 3.0) lizenziert. Die Weiternutzung ist bei Namensnennung erlaubt.

Dieses Stylesheet und die dazugehörige Dokumentation sind unter der sogenannten Expat License (einer GPL-kompatiblen MIT License) lizensiert. Es darf – als Ganzes oder auszugweise – unter Beibehaltung der Copyright-Notiz kopiert, verändert, veröffentlicht und verbreitet werden. Die Copyright-Notiz steht im Quelltext des Stylesheets und auf der Startseite der Dokumentation.

Revision History
Revision 0.2.02011-05-14Stf
erste veröffentlichte Version
Revision 0.1292011-02-27Stf
Erweiterung der Lizenz auf Expath/MIT license
Revision 0.532009-10-25Stf
Umstellung auf Namespaces xsb: und intern:
Revision 0.472009-10-11Stf
Ausgliederung von Logging aus internals.xsl
Revision 0.362009-08-02Stf
initiale Version

intern:internals.logging.Output (xsl:template)

Dieses Template ist der zentrale Einstieg zur Realisierung des Logging. Es nimmt die Logging-Parameter entgegen, wandelt sie in Tunnel-Parameter um und ruft den Dispatcher intern:internals.logging.Dispatcher auf. Es ist recht abstrakt und sollte zur Benutzung von Wrappern (wie z.B. xsb:internals.Logging) umgeben werden.

Diese Template ist auch für die Umwandlung der übergebenen Parameter in getunnelte Parameter zuständig.

Revision History
Revision 0.532009-10-25Stf

Status: beta

Umstellung auf Namespaces xsb: und intern:

Revision 0.362009-08-02Stf

Status: beta

initiale Version

Parameter log-entry.preText as="xs:string?" required="no"

Text, der ganz am Anfang der Ausgabe geschrieben wird. Bei Ausgabe als Text oder auf die Konsole kann darüber bspw. eine Einrückung realisiert werden. Bei Ausgabe als XML wird dieser Text der Nachricht hinzugefügt, bei Ausgabe als HTML wird eine zusätzliche Tabellenspalte erzeugt.

Parameter log-entry.ID as="xs:string?" required="no"

Message-ID

Parameter log-entry.timeStamp as="xs:dateTime?" required="no"

Zeitstempel der Nachricht.

Parameter log-entry.processedFile as="xs:string?" required="no"

Name der Datei, die bei Erzeugung der Nachricht transformiert wurde.

Parameter log-entry.level as="xs:string?" required="no"

Level der Nachricht. In Anlehnung an Log4j werden per Vorgabe die Stufen »ALL« > »TRACE« > »DEBUG« > »INFO« > »WARN« > »ERROR« > »FATAL« (in aufsteigender Reihenfolge der Wichtigkeit) verwendet.

Parameter log-entry.text as="xs:string?" required="no"

Nachrichtentext

Parameter log-entry.category as="xs:string?" required="no"

Kategorie der Nachricht, dient als zusätzliches Unterscheidungsmerkmal bei der externen Auswertung, z.B. "Fehler", "Abrechnung" oder "Hauptroutine"

Parameter log-entry.postText as="xs:string?" required="no"

Text, der ganz am Ende der Ausgabe geschrieben wird. Die konkrete Ausgabe wird in den entsprechenden intern:internals.logging.Render-to-xxx-Templates erzeugt; beispielsweise wird bei Ausgabe als XML dieser Text von intern:internals.logging.Render-to-xml hinter $log-entry.text eingefügt.

Parameter log-entry.linebreak-string as="xs:string?" required="no"

String, der bei einem Zeilenumbruch ausgegeben wird, im Normalfall 
.

Parameter log-entry.write-to-console as="xs:boolean" required="yes"

Wenn true(), wird die Nachricht auf die Konsole ausgegeben

Parameter log-entry.write-to-file as="xs:boolean" required="yes"

Wenn true(), wird die Nachricht in die Ausgabedatei geschrieben

Parameter log-entry.write-to-file-as-comment as="xs:boolean" required="yes"

Wenn true(), wird die Nachricht als Kommentar in die Ausgabedatei geschrieben

Parameter log-entry.write-to-file-as-element as="xs:boolean" required="yes"

Wenn true(), wird die Nachricht als XML-Element in die Ausgabedatei geschrieben

Parameter log-entry.write-to-file-as-html as="xs:boolean" required="yes"

Wenn true(), wird die Nachricht als HTML in die Ausgabedatei geschrieben

Parameter log-entry.write-to-file-as-text as="xs:boolean" required="yes"

Wenn true(), wird die Nachricht als Text in die Ausgabedatei geschrieben

Parameter log-entry.write-preText as="xs:boolean" required="yes"

Wenn true(), wird der Pre-Text mit der Nachricht ausgegeben

Parameter log-entry.write-ID as="xs:boolean" required="yes"

Wenn true(), wird die ID der Nachricht ausgegeben

Parameter log-entry.write-timeStamp as="xs:boolean" required="yes"

Wenn true(), wird der Zeitstempel der Nachricht ausgegeben

Parameter log-entry.write-processedFile as="xs:boolean" required="yes"

Wenn true(), wird der Name der transformierten Datei mit der Nachricht ausgegeben

Parameter log-entry.write-level as="xs:boolean" required="yes"

Wenn true(), wird der Level der Nachricht ausgegeben

Parameter log-entry.write-text as="xs:boolean" required="yes"

Wenn true(), wird der Text der Nachricht ausgegeben

Parameter log-entry.write-category as="xs:boolean" required="yes"

Wenn true(), wird die Kategorie der Nachricht ausgegeben

Parameter log-entry.write-postText as="xs:boolean" required="yes"

Wenn true(), wird der Post-Text mit der Nachricht ausgegeben

intern:internals.logging.Dispatcher (xsl:template)

Dieses Template verteilt die Nachrichten an die passenden Ausgabe-Templates. Parameter werden über tunnel="yes" durchgereicht (getunnelt).

Dieses zwischengeschaltete Template vermeidet außerdem, dass die Umwandlung in Tunnel-Parameter innerhalb von internal:internals.logging.Output mehrfach vorgenommen werden muss.

Revision History
Revision 0.532009-10-25Stf

Status: beta

Umstellung auf Namespaces xsb: und intern:

Revision 0.362009-08-02Stf

Status: beta

initiale Version

Parameter log-entry.write-to-console.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-to-file.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-to-file-as-comment.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-to-file-as-element.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-to-file-as-html.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-to-file-as-text.tunneld as="xs:boolean" tunnel="yes" required="yes"

intern:internals.logging.Write-to-console (xsl:template)

Dieses Template gibt die Nachricht auf der Konsole aus. Parameter werden über tunnel="yes" an das Template intern:internals.logging.Render-to-string durchgereicht (getunnelt).

Das Template wird normalerweise von intern:internals.logging.Output aufgerufen.

Hook: kann zum Umleiten oder Umformatieren überschrieben werden.

Revision History
Revision 0.532009-10-25Stf

Status: beta

Umstellung auf Namespaces xsb: und intern:

Revision 0.362009-08-02Stf

Status: beta

initiale Version

intern:internals.logging.Write-to-file-as-comment as="comment()" (xsl:template)

Dieses Template gibt die Nachricht als Kommentar in den Output-Stream (in der Regel: die Ergebnis-Datei) aus. Parameter werden über tunnel="yes" an das Template intern:internals.logging.Render-to-string durchgereicht (getunnelt).

Das Template wird normalerweise von intern:internals.logging.Output aufgerufen.

Hook: kann zum Umleiten oder Umformatieren überschrieben werden.

Revision History
Revision 0.532009-10-25Stf

Status: beta

Umstellung auf Namespaces xsb: und intern:

Revision 0.362009-08-02Stf

Status: beta

initiale Version

intern:internals.logging.Write-to-file-as-element as="node()*" intern:solved="EmptySequenceAllowed" (xsl:template)

Dieses Template gibt die Nachricht als XML-Element in den Output-Stream (in der Regel: die Ergebnis-Datei) aus. Parameter werden über tunnel="yes" an das Template intern:internals.logging.Render-to-xml durchgereicht (getunnelt).

Das Template wird normalerweise von intern:internals.logging.Output aufgerufen.

Hook: kann zum Umleiten oder Umformatieren überschrieben werden.

Revision History
Revision 0.532009-10-25Stf

Status: beta

Umstellung auf Namespaces xsb: und intern:

Revision 0.362009-08-02Stf

Status: beta

initiale Version

Parameter log-entry.linebreak-string.tunneld as="xs:string?" tunnel="yes" required="no"

intern:internals.logging.Write-to-file-as-html as="node()+" (xsl:template)

Dieses Template gibt die Nachricht als HTML-Elemente in den Output-Stream (in der Regel: die Ergebnis-Datei) aus. Parameter werden über tunnel="yes" an das Template intern:internals.logging.Render-to-html durchgereicht (getunnelt).

Das Template wird normalerweise von intern:internals.logging.Output aufgerufen.

Hook: kann zum Umleiten oder Umformatieren überschrieben werden.

Revision History
Revision 0.532009-10-25Stf

Status: beta

Umstellung auf Namespaces xsb: und intern:

Revision 0.362009-08-02Stf

Status: beta

initiale Version

intern:internals.logging.Write-to-file-as-text as="xs:string*" intern:solved="EmptySequenceAllowed" (xsl:template)

Dieses Template gibt die Nachricht als Text in den Output-Stream (in der Regel: die Ergebnis-Datei) aus. Parameter werden über tunnel="yes" an das Template intern:internals.logging.Render-to-string durchgereicht (getunnelt).

Das Template wird normalerweise von intern:internals.logging.Output aufgerufen.

Hook: kann zum Umleiten oder Umformatieren überschrieben werden.

Revision History
Revision 0.532009-10-25Stf

Status: beta

Umstellung auf Namespaces xsb: und intern:

Revision 0.362009-08-02Stf

Status: beta

initiale Version

Parameter log-entry.linebreak-string.tunneld as="xs:string?" tunnel="yes" required="no"

intern:internals.logging.Render-to-string as="xs:string?" intern:solved="EmptySequenceAllowed" (xsl:template)

Dieses Template rendert die Message-Parameter als Text. Parameter werden über tunnel="yes" empfangen (getunnelt).

Werden keine Parameter übergeben, wird eine empty sequence zurückgegeben.

Hook: kann zum Umformatieren überschrieben werden.

Revision History
Revision 0.532009-10-25Stf

Status: beta

Umstellung auf Namespaces xsb: und intern:

Revision 0.362009-08-02Stf

Status: beta

initiale Version

Parameter log-entry.preText.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.ID.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.timeStamp.tunneld as="xs:dateTime?" tunnel="yes" required="no"

Parameter log-entry.processedFile.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.level.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.text.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.category.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.postText.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.write-preText.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-ID.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-timeStamp.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-processedFile.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-level.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-text.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-category.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-postText.tunneld as="xs:boolean" tunnel="yes" required="yes"

intern:internals.logging.Render-to-xml as="node()" (xsl:template)

Dieses Template rendert die Message-Parameter als XML-Elemente. Parameter werden über tunnel="yes" empfangen (getunnelt).

Die Nachricht wird in ein message-Element mit Kindelementen umgewandelt.

Hook: kann zum Umformatieren überschrieben werden.

Revision History
Revision 0.1392011-04-24Stf

Status: beta

Trennung von preText, Text und postText

Revision 0.532009-10-25Stf

Status: beta

Umstellung auf Namespaces xsb: und intern:

Revision 0.362009-08-02Stf

Status: beta

initiale Version

Parameter log-entry.preText.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.ID.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.timeStamp.tunneld as="xs:dateTime?" tunnel="yes" required="no"

Parameter log-entry.processedFile.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.level.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.text.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.category.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.postText.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.write-preText.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-ID.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-timeStamp.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-processedFile.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-level.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-text.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-category.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-postText.tunneld as="xs:boolean" tunnel="yes" required="yes"

intern:internals.logging.Render-to-html as="node()+" (xsl:template)

Dieses Template rendert die Message-Parameter als HTML-Elemente. Parameter werden über tunnel="yes" empfangen (getunnelt).

Hook: kann zum Umformatieren überschrieben werden.

Revision History
Revision 0.1412011-04-25Stf

Status: beta

log-entry.command entfernt

Revision 0.532009-10-25Stf

Status: beta

Umstellung auf Namespaces xsb: und intern:

Revision 0.362009-08-02Stf

Status: beta

initiale Version

Parameter log-entry.preText.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.ID.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.timeStamp.tunneld as="xs:dateTime?" tunnel="yes" required="no"

Parameter log-entry.processedFile.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.level.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.text.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.category.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.postText.tunneld as="xs:string?" tunnel="yes" required="no"

Parameter log-entry.write-preText.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-ID.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-timeStamp.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-processedFile.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-level.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-text.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-category.tunneld as="xs:boolean" tunnel="yes" required="yes"

Parameter log-entry.write-postText.tunneld as="xs:boolean" tunnel="yes" required="yes"

intern:internals.logging.MakeHeader.element (xsl:template)

Dieses Template erzeugt bei der Ausgabe als xml den Kopf, speziell das öffnende Element

Revision History
Revision 0.1392011-04-24Stf

Status: alpha

initiale Version

intern:internals.logging.MakeHeader.html exclude-result-prefixes="#all" (xsl:template)

Dieses Template erzeugt bei der Ausgabe als xml den Kopf, speziell das öffnende Element

Revision History
Revision 0.1392011-04-24Stf

Status: alpha

initiale Version

Parameter titel as="xs:string?" required="no"

optionaler Seitentitel

intern:internals.logging.MakeFooter.element (xsl:template)

Dieses Template erzeugt bei der Ausgabe als XML den Fuß, speziell das schließende Element

Revision History
Revision 0.1392011-04-24Stf

Status: alpha

initiale Version

intern:internals.logging.MakeFooter.html exclude-result-prefixes="#all" (xsl:template)

Dieses Template erzeugt bei der Ausgabe als HTML den Fuß, speziell die schließenden Tags

Revision History
Revision 0.1392011-04-24Stf

Status: alpha

initiale Version

intern:internals.logging.MakeThead.HTML as="node()" (xsl:template)

Dieses Template erzeugt eine Zeile mit dem Tabellenkopf für die Ausgabe als HTML. Die Signatur des Templates entspricht einem normalen Logging-Eintrag (mit Ausnahme von log-entry.timeStamp, das hier xs:string ist), die übergebenen Werte werden in die Spaltenüberschriften geschrieben. Werden keine Werte übergeben, werden Standardwerte verwendet.

Hook: kann zum Umformatieren überschrieben werden.

Revision History
Revision 0.1412011-04-25Stf

Status: beta

als selbständiges Template neben der Logging-Infrastruktur umgeschrieben

Revision 0.532009-10-25Stf

Status: beta

Umstellung auf Namespaces xsb: und intern:

Revision 0.362009-08-02Stf

Status: beta

initiale Version

Parameter log-entry.preText as="xs:string?" required="no"

Parameter log-entry.ID as="xs:string?" required="no"

Parameter log-entry.timeStamp as="xs:string?" required="no"

Parameter log-entry.processedFile as="xs:string?" required="no"

Parameter log-entry.level as="xs:string?" required="no"

Parameter log-entry.text as="xs:string?" required="no"

Parameter log-entry.category as="xs:string?" required="no"

Parameter log-entry.postText as="xs:string?" required="no"

Parameter log-entry.write-preText as="xs:boolean" required="no"

Parameter log-entry.write-ID as="xs:boolean" required="no"

Parameter log-entry.write-timeStamp as="xs:boolean" required="no"

Parameter log-entry.write-processedFile as="xs:boolean" required="no"

Parameter log-entry.write-level as="xs:boolean" required="no"

Parameter log-entry.write-text as="xs:boolean" required="no"

Parameter log-entry.write-category as="xs:boolean" required="no"

Parameter log-entry.write-postText as="xs:boolean" required="no"

2. Index

I

I