WebSphere Product Center enthält vorkonfigurierte Dateien, die Protokolle generieren, welche anschließend zur Fehlerbehebung in WebSphere Product Center verwendet werden können. Dieses Dokument bietet einen Überblick über die Protokollierungsmechanismen und erläutert, wie die Protokolldateien eingerichtet werden müssen.
Die folgenden Dateien steuern verschiedene Subsysteme im gesamten WebSphere Product Center. In jeder Datei wird die Position des generierten Protokolls definiert.
Hinweis: Alle Pfade beziehen sich auf $TOP
/etc/logs/eventprocessor.log.xml
/etc/logs/scheduler.log.xml
/etc/logs/system.log.xml
/etc/logs/appsvr.log.xml
/etc/logs/workflowengine.log.xml
Protokolle, die während der Laufzeit generiert werden, können angezeigt und nach Fehlern durchsucht werden, wodurch die Fehlerbehebung erleichtert wird, wenn ein Problem im Zusammenhang mit WebSphere Product Center oder internen Unterstützungsinfrastrukturen steht.
Die von WebSphere Product Center generierten Protokolldateien werden in $TOP/logs/*.log. gespeichert.
Die Merkmale der WebSphere Product Center-Protokolldateien können nach Bedarf bearbeitet werden (d.h. ihre Position, maximale Größe und das Format). In den folgenden Abschnitten werden die Elemente beschrieben, mit denen die Protokolle konfiguriert werden und eine Liste der Werte enthalten, die zum Konfigurieren einer WebSphere Product Center-Protokolldatei verwendet werden können.
Position ändern
Hinweis: Gilt nur für Dateiappender und rollierende Appender
Wenn Sie die Position einer generierten Protokolldatei ändern möchten, ändern Sie die Parameter der angegebenen Protokollkonfigurationsdateien.
Beispiel:
<param name="File" value="${TOP}/logs/webserver_db.log " />
Dateigröße ändern
Hinweis: Gilt nur für rollierende Appender
Die Größe der Protokolldatei kann auf eine angegebene Speichergröße festgelegt werden, bevor sie beginnt, zu rotieren und die obere Reihe der Ausgabe zu löschen. Wenn Sie steuern möchten, ab wann die Datei mit dem Abschneiden beginnen soll, ändern Sie den Parameterwert für die Protokolldateigröße.
Beispiel:
<param name="maxFileSize" value="10MB" />
Dateisicherungsoption ändern
Hinweis: Gilt nur für rollierende Appender
Die Protokollfunktion kann so definiert werden, dass eine angegebene Anzahl von Sicherungen für eine Protokolldatei aufbewahrt wird. Wenn der maximale Wert erreicht ist, wird die älteste Datei heraus genommen.
Beispiel:
<param name="maxBackupIndex" value="2" />
Konvertierungsmuster ändern
Die Layoutkonfiguration der Protokolle kann geändert werden, indem das Konvertierungsmuster erneut definiert wird.
Beispiel:
<param name="ConversionPattern" value=
"%d [%t] %-5p %c (%F:%L) %x- %m%n"/>Das Konvertierungsmuster hängt eng mit dem Konvertierungsmuster der Funktion printf in C zusammen. Ein Konvertierungsmuster enthält Literaltext und Ausdrücke für die Formatsteuerung, die Konvertierungskennungen genannt werden.
Hinweis: Sie können jeden beliebigen Literaltext im Konvertierungsmuster einfügen.
Jede Konvertierungkennung beginnt mit einem Prozentzeichen: "%", gefolgt von optionalen Formatmodifikatoren und einem Konvertierungszeichen.
% (formatmodifikatoren)(konvertierungszeichen)
Beispiel:
%-5p [%t]: %m%n
- Die Formatmodifikatoren steuern z. B. die Feldbreite, das Auffüllen, oder ob links- oder rechtsbündig ausgerichtet wird.
- Das Konvertierungszeichen gibt den Datentyp an (z. B. Kategorie, Priorität, Datum und Threadname).
Standardmäßig werden die relevante Informationen unverändert ausgegeben. Mit der Hilfe von Formatmodifikatoren ist es jedoch möglich, die Mindestfeldbreite, die maximale Feldbreite und die Textausrichtung zu ändern.
Der optionale Formatmodifikator steht zwischen dem Prozentzeichen und dem Konvertierungszeichen. In dem Beispiel bedeutet die Konvertierungskennung
%-5p, dass die Priorität des Protokollierungsereignisses linksbündig mit einer Breite von 5 Zeichen ausgerichtet werden sollte.Der erste optionale Formatmodifikator ist die Markierung für linksbündige Ausrichtung, wobei es sich einfach um das Minuszeichen (-) handelt. Danach kommt der optionale Modifikator Mindestfeldbreite. Dies ist eine Dezimalkonstante, die die auszugebende Mindestzeichenanzahl darstellt. Wenn für das Datenfeld weniger Zeichen erforderlich sind, wird es entweder auf der linken, oder auf der rechten Seite aufgefüllt, bis die Mindestbreite erreicht ist.
Standardmäßig wird links aufgefüllt (rechtsbündige Ausrichtung), Sie können aber mit der Markierung für linksbündige Ausrichtung das Auffüllen auf der rechten Seite festlegen. Die Zeichen für das Auffüllen sind Leerschritte. Wenn das Datenelement größer als die Mindestfeldbreite ist, wird das Feld erweitert, so dass alle Daten aufgenommen werden können. Der Wert wird nicht abgeschnitten.
Dieses Verhalten kann mit dem Modifikator maximale Feldbreite geändert werden, der durch einen Punkt und eine Dezimalkonstante dargestellt wird. Wenn das Datenelement länger als die maximale Feldbreite ist, werden diese überschüssigen Zeichen am Anfang des Datenelements entfernt, nicht am Ende.
Wenn z. B. die maximale Feldbreite acht Zeichen und das Datenelement 10 Zeichen lang ist, werden die ersten beiden Zeichen des Datenelements gelöscht.
Hinweis: Dieses Verhalten weicht von der Funktion 'printf' in C ab, bei der die Verkürzung am Ende erfolgt.
Auf den folgenden Seiten finden Sie die Werte zur Definition der Konvertierungskennungen.
Im Folgenden finden Sie Formatmodifikatorbeispiele für die Kategoriekonvertierungskennung.
Formatmodifikator
Linksbündig ausrichten
Min.
Maximale Breite
Kommentar
%20c
False
20
Keine
Links mit Leerzeichen auffüllen, falls der Kategoriename kürzer als 20 Zeichen ist.
%-20c
True
20
Keine
Rechts mit Leerzeichen auffüllen, falls der Kategoriename kürzer als 20 Zeichen ist.
%30c
Nicht zutreffend
Keine
30
Am Anfang abschneiden, falls der Kategoriename länger als 30 Zeichen ist.
%20.30c
False
20
30
Links mit Leerzeichen auffüllen, falls der Kategoriename kürzer als 20 Zeichen ist. Falls der Kategoriename jedoch länger als 30 Zeichen ist, am Anfang abschneiden.
%-20.30c
True
20
30
Rechts mit Leerzeichen auffüllen, falls der Kategoriename kürzer als 20 Zeichen ist. Falls der Kategoriename jedoch länger als 30 Zeichen ist, am Anfang abschneiden.
Im Folgenden finden Sie eine Liste der erkannten Konvertierungszeichen:
Konvertierungszeichen
Wirkung
c
Wird für die Ausgabe der Kategorie des Protokollierungsereignisses verwendet. Optional kann eine Präzisionskennung auf die der Kategoriekonvertierungskennung folgen, die eine Dezimalkonstante in Klammern ist.
Wenn eine Präzisionskennung angegeben wird, wird nur die entsprechende Zahl der äußersten rechten Bestandteile des Kategorienamens gedruckt. Der Kategoriename wird standardmäßig vollständig ausgedruckt.
So wird z. B. für den Kategorienamen "a.b.c" das Muster %c{2} als "b.c" ausgegeben.
d
Wird für die Ausgabe des Datums des Protokollierungsereignisses verwendet. Auf die Datumskonvertierungskennung kann eine Datumsformatkennung in geschweiften Klammern {} folgen.
Beispiel: %d{HH:mm:ss,SSS} oder %d{dd MMM yyyy HH:mm:ss,SSS}. Wenn keine Datumsformatkennung angegeben wird, wird das ISO-Format 8601 vorausgesetzt.
Die Datumsformatkennung lässt die gleiche Syntax wie die Zeitmusterzeichenfolge von SimpleDateFormat zu. Obwohl Teil des Standard-JDKs, ist die Leistung von SimpleDateFormat nicht sehr gut.
Es wird empfohlen, für bessere Ergebnisse die log4j-Datumsformatierungsprogramme zu verwenden. Sie können diese angeben, indem Sie eine der folgenden Zeichenfolgen angeben: "ABSOLUTE", "DATE" und "ISO8601" für "AbsoluteTimeDateFormat", "DateTimeDateFormat" oder "ISO8601DateFormat". Beispiel: %d{ISO8601} oder %d{ABSOLUTE}.
Diese dedizierten Datumsformatierungsprogramme haben eine wesentlich bessere Leistung, als SimpleDateFormat.
m
Für die Ausgabe der WebSphere Product Center-Nachricht, die dem Protokollierungsereignis zugeordnet ist.
n
Für die Ausgabe des bzw. der plattformabhängigen Zeilentrennzeichen.
Dieses Konvertierungszeichen bietet praktisch dieselbe Leistung, wie nicht übertragbare Zeilentrennzeichen wie "\n" oder "\r\n". Daher ist dies die bevorzugte Methode, ein Zeilentrennzeichen anzugeben.
p
Wird für die Ausgabe der Priorität des Protokollierungsereignisses verwendet.
r
Wird für die Ausgabe der Anzahl verstrichener Millisekunden seit dem Start von WebSphere Product Center bis zur Erstellung des Protokollierungsereignisses verwendet.
t
Für die Ausgabe des Threadnamens, der das Protokollierungsereignis generiert hat.
x
Für die Ausgabe des verschachtelten diagnostischen Kontextes (NDC - nested diagnostic context), der zu dem Thread gehört, welcher das Protokollierungsereignis generiert hat.
%
Die Folge %% gibt ein einzelnes Prozentzeichen aus.
In den folgenden Beispielen wird veranschaulicht, wie die Protokolldateien von WebSphere Product Center definiert sind. Die Eingaben in Fettdruck legen die Konfiguration der WebSphere Product Center-Protokolldateien fest.
<!-- basic ASYNC appender -->
<appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
<appender-ref ref="DEFAULT"/>
</appender>
<!-- basic CONSOLE appender. This is the same as doing system.out-->
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%t] %-5p %c (%F:%L) %x- %m%n"/>
</layout>
</appender>
<!-- simple FILE appender. The file will be opened and if append is true -->
<!-- it will not be truncated -->
<appender name="DEFAULT" class="org.apache.log4j.FileAppender">
<param name="File" value="${TOP}/logs/tomcat_default.log " />
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c (%F:%L) %x- %m%n"/>
</layout>
</appender>
<!-- Rolling FILE appender. The file will be opened and if append is true -->
<!-- it will not be truncated -->
<!-- maxFileSize: How big before you rotate -->
<!-- maxBackupIndex: How many backups do you keep? -->
<appender name="DB" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${TOP}/logs/tomcat_db.log " />
<param name="Append" value="true" />
<param name="maxFileSize" value="10MB" />
<param name="maxBackupIndex" value="2" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c (%F:%L) %x- %m%n"/>
</layout>
</appender>
<!-- For the austin.db category, you want to have only a few logs kept hence -->
<!-- the rollingappender -->
<category name="austin.db" additivity=" false">
<priority value="INFO" />
<appender-ref ref="DB" />
</category>
<!-- ROOT CATEGORY -->
<!-- MUST ALWAYS BE LAST ENTRY AND HAVE AN APPENDER-->
<!-- If a logging event is not caught by any other logger it will be handled by this-->
<!-- rule. -->
<root>
<priority value="error"/>
<appender-ref ref="DEFAULT"/>
</root>
</log4j:configuration>