Ereignisprotokollierung
Im Rahmen der Überwachungs- und Diagnosefunktionen generiert WebSphere Application Server Liberty Ereignisse für verschiedene Komponenten von Java Platform, Enterprise Edition, um die Anforderungen zu verfolgen. Das Feature eventLogging-1.0 protokolliert solche Ereignisse, wenn die Anwendungsanforderungen ausgeführt werden. Mithilfe dieses Features kann der Benutzer die Anforderungen, die in WebSphere Application Server Liberty ausgeführt werden, verfolgen. Jeder Anforderung werden ein eindeutiger Korrelator, die so genannte Anforderungs-ID, und Kontextinformationen zugeordnet, die dem Benutzer helfen, die anforderungsspezifischen Daten zu verstehen.
Das Ereignisprotokollierungsfeature wird über die Serverkonfiguration gesteuert. Das Feature wird in der Datei server.xml konfiguriert.
[12/15/14 18:24:29:528 IST] 0000002e EventLogging I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | TradeScenarioServlet
[12/15/14 18:24:29:531 IST] 0000002e EventLogging I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | TradeAppServlet
[12/15/14 18:24:29:532 IST] 0000002e EventLogging I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | /quote.jsp
[12/15/14 18:24:29:533 IST] 0000002e EventLogging I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | /displayQuote.jsp
[12/15/14 18:24:29:534 IST] 0000002e EventLogging I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.datasource.psExecuteQuery # contextInfo=jdbc/TradeDataSource | select * from quoteejb q where q.symbol=?
[12/15/14 18:24:29:547 IST] 0000002e EventLogging I END requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.datasource.psExecuteQuery # contextInfo=jdbc/TradeDataSource | select * from quoteejb q where q.symbol=? # duration=12.537ms
[12/15/14 18:24:29:556 IST] 0000002e EventLogging I END requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | /displayQuote.jsp # duration=22.171ms
[12/15/14 18:24:29:671 IST] 0000002e EventLogging I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | /displayQuote.jsp
[12/15/14 18:24:29:672 IST] 0000002e EventLogging I BEGIN requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.datasource.psExecuteQuery # contextInfo=jdbc/TradeDataSource | select * from quoteejb q where q.symbol=?
[12/15/14 18:24:29:677 IST] 0000002e EventLogging I END requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.datasource.psExecuteQuery # contextInfo=jdbc/TradeDataSource | select * from quoteejb q where q.symbol=? # duration=4.968ms
[12/15/14 18:24:29:684 IST] 0000002e EventLogging I END requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | /displayQuote.jsp # duration=12.569ms
[12/15/14 18:24:29:685 IST] 0000002e EventLogging I END requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | /quote.jsp # duration=152.752ms
[12/15/14 18:24:29:686 IST] 0000002e EventLogging I END requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | TradeAppServlet # duration=154.616ms
[12/15/14 18:24:29:687 IST] 0000002e EventLogging I END requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | TradeScenarioServlet # duration=158.283ms
Die Anforderung beginnt beim Ereignis BEGIN websphere.servlet.service "contextInfo=TradeWeb | TradeScenarioServlet" (siehe die erste Zeile im Beispielcode) und endet beim Ereignis END websphere.servlet.service "contextInfo=TradeWeb | TradeScenarioServlet" (siehe die letzte Zeile im Beispielcode). Am Ende wird außerdem die Gesamtdauer der Anforderung (158,283 Millisekunden im Beispielcode) angezeigt.
Die untergeordneten Anforderungen sehen Sie unter BEGIN und END der Hauptanforderung. Außerdem wird die Dauer jeder untergeordneten Anforderung angezeigt.
Die beste Leistung bei aktivierter Ereignisprotokollierung erzielen Sie mit der Binärprotokollierung. Die Attribute eventType, contextInfo und requestID aus den Ereignisprotokolleinträgen werden als Protokolldatensatzerweiterungen gespeichert. Sie können diese Protokolldatensatzerweiterungen verwenden, um die Protokolle mit dem Befehl binaryLog zu filtern.
Ereignisprotokolleinträge in der Datei messages.log parsen
In den Ereignisprotokollen werden die Informationen zu den Ereignissen im folgenden Format erfasst:[Protokollmodus] [Anforderungs-ID] # [Ereignistyp] # [Kontextinformationen] # [Dauer] (optional)
Erläuterungen:
- Der Protokollmodus gibt an, ob das Protokoll beim Einstieg in das Ereignis oder beim Ausstieg aus dem Ereignis aufgezeichnet wurde. BEGIN verweist auf den Einstieg in das Ereignis und
END auf den Ausstieg aus dem Ereignis.
- Anforderungs-ID ist eine eindeutige Zeichenfolge, die jeder Anforderung zugewiesen wird. Mithilfe dieser ID können Ereignisse gefiltert werden, die zu einer bestimmten
Anforderung gehören. Beispiel: requestId=AAY6TalVDTO_AAAAAAAAAAK
- Der Ereignistyp enthält Informationen zur Ereignisquelle und kann jeder der in der folgenden Tabelle aufgeführten unterstützten Ereignistypen sein. Mithilfe des Ereignistyps können Ereignisse eines bestimmten Typs filtern. Beispiel: eventType=websphere.servlet.service
- Die Kontextinformationen des Ereignisses enthalten relevante Details für den Ereignistyp. Die Informationen
variieren je nach Ereignistyp. Kontextinformationen können mehrere Abschnitte enthalten, die durch | (Leerzeichen|Leerzeichen) getrennt werden. Beispiele für Kontextinformationen
für verschiedene Ereignistypen sind in der folgenden Tabelle aufgeführt.
- Die Dauer gibt an, wie lange das Ereignis gedauert hat. Die Dauer wird nur in Einträgen zum Ausstieg aus einem Ereignis angezeigt. Beispiel: duration=158.283ms
[12/15/14 18:24:29:687 IST] 0000002e EventLogging I END requestID=AAY6TalVDTO_AAAAAAAAAAK # eventType=websphere.servlet.service # contextInfo=TradeWeb | TradeScenarioServlet # duration=158.283ms
In der
folgenden Tabelle sind die Ereignistypen aufgelistet, die von der Ereignisprotokollierung unterstützt werden:
Komponente | Ereignistypen | Kontextinformationen | Beispiel |
---|---|---|---|
Servlet |
websphere.servlet.destroy |
[Application Name] | [Servlet Name] | [Path Information] | [Query String] |
contextInfo=TradeWeb | /displayQuote.jsp |
Session |
websphere.session.dbSessionDestroyedByTimeout, websphere.session.getAttribute |
[Session Id] [Session Id] | [Session Attribute Name] |
contextInfo=EuitabHZUOD7J2u01HDdAG0 contextInfo=EuitabHZUOD7J2u01HDdAG0 | userID |
JDBC |
websphere.datasource.execute |
[Jndi Name Of Data Source] | [SQL Query] |
contextInfo=jdbc/TradeDataSource | select * from quoteejb q where q.symbol=? |