Inhaltsverzeichnis


Startseite


Logging

ASYS verwendet für das Logging 'log4j'. Dies bietet eine sehr gute Skalierbarkeit und (für Citrix-Systeme) die Möglichkeit, für jeden Anwender eigene Log-Dateien erstellen zu lassen.

Für die verschiedenen Komponenten ('Anwendungsoberflächen', 'Kommunikationsserver', 'Webservice Transportkontrolle') gibt es hierbei unterschiedliche Property-Dateien, in denen die Loggingkonfigurationen eingestellt werden können.

Die folgende Tabelle gibt einen Überblick, um welche Dateien es sich hierbei handelt und wo diese zu finden sind bzw. abgelegt werden müssen.

Es werden folgende Abkürzungen verwendet:

Datei für Komponente Ort der Datei Bemerkungen
MbsLog2.properties Anwendungsoberfläche [USER_HOME] s.u.
MbsAdminLog2.properties Administrator
Service-Routinen
[USER_HOME] s.u.
MbsAdminClientLog2.properties Admin Datenbank- und Testtool [USER_HOME] s.u.
AsysComServer7.properties Kommunikationsserver …\AsysServer\[TOMCAT]\conf\
AsysWebService7.properties WebService-Server …\AsysServer\[TOMCAT]\conf\ oder bei Standalone-Lösung: …\AsysWebService\[TOMCAT]\conf\
AsysJobServer.properties Funktionsserver …\AsysServer\[TOMCAT]\conf\

MbsLog2.properties

Um nicht für jeden Nutzer eine Log-Datei manuell erstellen zu müssen, bietet ASYS hierfür einen gewissen Komfort.

Beim Start von ASYS erfolgt die Suche nach den 'MbsLog2.properties'

Beispiel:  Aus
...
log4j.appender.debug=org.apache.log4j.FileAppender
log4j.appender.debug.File=logs/asys_<*LOGIN_NAME*>_debug.log
log4j.appender.debug.Append=false
...

wird, wenn sich der Anwender 'itu' anmeldet
...
log4j.appender.debug=org.apache.log4j.FileAppender
log4j.appender.debug.File=logs/asys_itu_debug.log
log4j.appender.debug.Append=false
...

Logging-Einstellungen für einzelne Arbeitsplätze lassen sich auch einfach über den Repository-Administrator ändern.

Allgemeines zum Logging

In der ASYS-Mittelschicht werden vier Logging-Stufen verwendet (dies ist auch durchaus Standard):

Die prinzipielle Einstufung in 'info', 'warn' und 'debug' ('error' ergibt sich normalerweise automatisch) erfolgt im Programmcode und kann auch nur dort geändert werden. Konfiguriert werden kann, welche Informationen 'geloggt' werden.

Die Konfiguration wird in den oben genannten Property-Dateien vorgenommen.

Die Ausgabe wird hierbei über sogenannte 'Appender' definiert und gesteuert. In ASYS kommen als Appender die Java Console ('ConsoleAppender') und zwei Varianten von Datei-Appendern ('FileAppender' und 'DailyRollingFileAppender') zum Einsatz. Prinzipiell gäbe es auch noch weitere mögliche Appender.

Je nach Appender-Typ sind unterschiedlich viele Konfigurationseinstellungen erforderlich.

Erforderliche Einstellungen für alle Appender:

Für die zwei Varianten von Datei-Appendern ('FileAppender' und 'DailyRollingFileAppender') sind zwei weitere Einstellungen vorzunehmen:

Für den speziellen 'DailyRollingFileAppender' (jeden Tag wird eine neue Log-Datei erstellt; die alten Log-Dateien bleiben erhalten) ist eine Konfigurationseinstellung für den (alten) Dateinamen vorzunehmen:

Für das prinzipielle Logging ist eine weitere wichtige Konfigurationseinstellung vorzunehmen:

Als Standard für die 'RootCategory' sollte immer nur INFO eingetragen werden, da bei 'DEBUG' innerhalb kürzester Zeit riesige Log-Dateien entstehen könnten. Das 'DEBUG' sollte nur auf Paket- bzw. Klassenebene eingeschränkt zugeschaltet werden.

Der rootCategory-Eintrag sollte also folgendermaßen aussehen:

log4j.rootCategory=INFO, console, info

bzw.

log4j.rootCategory=INFO, console, info, debug

sofern der debug-Appender definiert ist.

In den Auslieferungsversionen sind die Ausgaben auf das wesentliche beschränkt.

Ausgabe auf Paket- bzw. Klassenebene:

Die wichtigsten Pakete und Klassen, für die das DEBUG ggf. eingestellt werden sollte (für Fehleranalysen der Governikus ITU) stehen in auskommentierten Zustand in der 'ACSComDienst.prop'.

Der Sql- und der Rule-Logger sind selbstdefinierte Kategorien, die bereits im Programmcode definiert sind. Diese Kategorien nehmen Informationen über bestimmte inhaltliche Bereiche auf (der Inhalt kann sich dabei über verschiedene Pakete und Klassen erstrecken). Über eine Schalter läßt sich damit dieser gesamte inhaltliche Bereich in einen bestimmten Appender schreiben.

Beispiele

Beispiel für ein Paket und eine Klasse, die in einen bestimmten Appender schreiben:

log4j.appender.skript=org.apache.log4j.FileAppender
log4j.appender.skript.File=logs/asys_script.log
log4j.appender.skript.Append=false
log4j.appender.skript.Threshold=DEBUG
log4j.appender.skript.layout=org.apache.log4j.PatternLayout
log4j.appender.skript.layout.ConversionPattern=%d %x - %m%n
log4j.logger.de.condat.script=DEBUG, skript (DEBUG des Paketes 'script' schreibt in den Appender 'skript')
log4j.logger.de.condat.ddo.session.GenericScriptImpl=DEBUG, skript ('DEBUG' der Klasse 'GenericScriptImpl' schreibt in den Appender 'skript')

Beispiel für ein SQL-Log:

log4j.appender.sql=org.apache.log4j.FileAppender
log4j.appender.sql.File=logs/asys_sql.log
log4j.appender.sql.Append=false
log4j.appender.sql.Threshold=DEBUG
log4j.appender.sql.layout=org.apache.log4j.PatternLayout
log4j.appender.sql.layout.ConversionPattern=%d %x - %m%n
log4j.logger.Sql-Logger=DEBUG, sql (die 'DEBUG'-Ausgabe der Sql-Logger-Kategorie wird in den 'Appender' 'sql' (und damit die Datei 'asys_sql.log') geschrieben)

Beispiel für ein DEBUG-Log (die Pakete, die auf DEBUG gestellt werden sollen, werden von der Governikus ITU benannt):

log4j.rootCategory=INFO, console, debug (als rootCategory INFO)

log4j.appender.debug=org.apache.log4j.FileAppender
log4j.appender.debug.File=logs/asys_debug.log
log4j.appender.debug.Append=false
log4j.appender.debug.Threshold=DEBUG
log4j.appender.debug.layout=org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern=%d [%t] %-5p %-50c %x - %m%n
log4j.logger.de.condat.mbs=DEBUG (Paket auf DEBUG gestellt)
log4j.logger.de.condat.ddo.session=DEBUG (Paket auf DEBUG gestellt)

Beispiel für ein DEBUG-Log, wie es NICHT gemacht werden sollte:

log4j.rootCategory=DEBUG, console, debug (als rootCategory 'DEBUG'; führt innerhalb kürzester Zeit zu einer 'riesigen' Log-Datei)

log4j.appender.debug=org.apache.log4j.FileAppender
log4j.appender.debug.File=logs/asys_debug.log
log4j.appender.debug.Append=false
log4j.appender.debug.Threshold=DEBUG
log4j.appender.debug.layout=org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern=%d [%t] %-5p %-50c %x - %m%n

Weitere ausführlichere Informationen über das 'log4j' können bei Interesse dem beiliegenden Dokument Nutzerhandbuch für Log4j 2.x (englisch)1) entnommen werden.

1)
Eine deutsche Übersetzung des Handbuchs ist nicht verfügbar.