Übersicht

Der PPM-Server verwendet zur Ausgabe von Systemmeldungen (log-Ausgaben) die Java-Standardschnittstelle log4J2. log4J2 ist ein flexibles Framework zur Steuerung der Ausgabe von Java-Anwendungsmeldungen über verschiedene Medien (Ausgabekanäle). Die Konfiguration der log4J-Schnittstelle erfolgt entweder in einer XML-Datei oder einer properties-Datei. Sie setzt sich aus drei Komponenten zusammen: Logger (Sammler), Layout (Formatierung) und Appender (Ausgabe)

PPM liest die log4J2-Konfiguration aus einer Property-Datei.

Logger

Die Java-Anwendung übergibt ihre Meldungen an einen bestimmten Logger (Sammler), der diese je nach Art der Meldung weiterverarbeitet. Meldungen können vom Typ (Loglevel) ALL, TRACE, INFO, WARN, ERROR, FATAL, OFF sein.

Loglevel

Beschreibung

ALL

Alle Meldungen werden ungefiltert ausgegeben.

TRACE

Sehr ausführliche Laufzeitmeldungen, häufig mit Ausgaben kompletter Fehlerzustände der Applikation

DEBUG

Ausführliche Laufzeitmeldungen, die oft den internen Zustand der Applikation beschreiben

INFO

Allgemeine Informationen oder Warnungen

WARN

Hinweise auf nicht laufzeitkritische Applikationszustände, z.B. fehlende oder falsche Konfigurationen 

ERROR

Fehler, die oft zum Abbruch der aktiven Komponente führen

FATAL

Fehler, die zum Abbruch der Anwendung führen, z.B. Ressourcenmangel 

OFF

Keine log-Ausgaben

In der log4J-Konfigurationsdatei wird ein Logger durch die folgenden Zeilen definiert:

logger.<key>.name = <logger name>

logger.<key>.level = <log level>

logger.<key>.appenderRef.<appender key 1>.ref = <appender name 1>

logger.<key>.appenderRef.<appender key 2>.ref = <appender name 2>

logger.<key>.appenderRef.<appender key n>.ref = <appender name n>

Die Schreibweise der Logger-Namen beachtet die Groß- und Kleinschreibung. Die Namen bilden eine hierarchische Struktur. Das Wurzelelement ist der root-Logger. Die Hierarchieebenen werden durch das Zeichen Punkt (.) getrennt. Die höhere Hierarchieebene vererbt ihre Konfiguration an die niedrigere, die dann von spezifischen Einstellungen überschrieben wird.

Die folgende Tabelle veranschaulicht die Vererbungshierarchie:

Logger Name

zugewiesener Loglevel

Ererbter Loglevel

rootLogger

INFO

keiner

logger.LOG

DEBUG

INFO

logger.LOG.SRV

ERROR

INFO

Appender

Der Logger gibt die Meldungen an die Appender (Empfänger) weiter, die die Meldungen dann in einer bestimmten Form (Layout) ausgeben. Die Appender unterscheiden sich in der Art der Ausgabe, beispielsweise:

PPM Beispiel Appender

Beschreibung

console

Meldungen werden an der Konsole ausgegeben

logFile

Meldungen werden in eine Datei geschrieben

errorFile

Fehlermeldungen werden in eine Datei geschrieben

In der log4J2-Konfigurationsdatei wird ein Appender durch die folgenden Zeilen definiert:

appender.<key>.name = <appender name>

appender.<key>.type = [File | Console]

Für einen Logger können mehrere Appender angegeben werden. Alle Appender eines Loggers geben die Meldungen entsprechend ihrer Konfiguration aus.

Es gibt auch Appender, die die Meldungen in das log-System des Betriebssystems schreiben, als Mail versenden oder die Meldungen über das Netzwerk an einen bestimmten log-Server schicken.

Layout

Das Format der Ausgabe lässt sich durch bestimmte Formatvorlagen festlegen. Diese Formatvorlagen werden für den gewünschten Appender angegeben. Die wichtigsten Platzhalter für eine Formatvorlage sind:

Platzhalter

Beschreibung

%c

Kategorie / Logger (entspricht PPM-Modul)

%C

Klassenname, vollqualifiziert

%d

Datum, z.B. %d{HH:mm:ss,SSS} 

%xd

Datum, das auch das Token 'ppmdate' unterstützt, z. B. %xd{ppmdate}. 'ppmdate' ist ein lokalisiertes Standardmuster entsprechend dem Gebietsschema.

%F

Dateiname

%L

Zeilennummer

%m

Die Meldung selbst

%M

Name der Methode

%n

Zeilenumbruch

%p

Priorität, Level (INFO, WARN, ERROR, etc.)

%t

Name des Thread

%throwable{0}

Ausgabe von Stacktraces wird unterdrückt.

Beispiel

Die Formatvorlage [%t] %-5p %C - %m%n ergibt folgende Ausgabe:

[main] INFO org.apache.log4j.Action - Der Prozess wurde gestartet