Log-Dateien
Einführung in Log-Dateien in ConSol CM
Log-Dateien sind die Hauptquelle für Informationen über die Aktivitäten im System und potentielle Probleme. In ihnen werden Log-Meldungen der unterschiedlichen Komponenten von ConSol CM gespeichert.
Definitionen
- Log-Datei: Textdatei mit der Erweiterung
.log
, in der Meldungen über die Aktivität im System und Fehler geschrieben werden - Log-Level: Das Log-Level legt fest, welche Meldungen in den Log-Dateien geschrieben werden und wie viele Details in den Log-Meldungen enthalten sind. Die am meisten verwendeten Log-Level sind ERROR, INFO und DEBUG.
Zweck und Verwendung
Log-Dateien enthalten Informationen über die Systemaktivität. Wenn beim Betrieb des Systems Fehler auftreten, enthalten sie Details über den Fehler. Die Analyse der Log-Dateien ist für die Fehlerbehebung nützlich und kann Probleme aufdecken, die auf der Benutzeroberfläsche nicht zu sehen sind.
Es gibt zwei Möglichkeiten zum Zugriff auf die Log-Dateien:
- Öffnen Sie die Datei im Dateisystem. Der Standardpfad ist
<JBOSS_HOME>/standalone/log
. - Öffnen Sie die Seite Log-Dateien der Web Admin Suite. Dort können Sie die Log-Dateien anzeigen und herunterladen.
Verfügbare Log-Dateien
Folgende Log-Dateien sind in ConSol CM verfügbar:
- access.log: Enthält Log-Meldungen über den Zugriff und die Nutzung vom Web Client. Muss explizit aktiviert werden, siehe Aktivieren der Datei access.log.
- audit.log: Enthält Log-Meldungen über An- und Abmeldevorgänge in der Web Admin Suite, und alle Operationen, die mit diesen Applikationen durchgeführt werden, z. B. Konfigurationsänderungen und Workflow-Installationen. Zusätzlich werden alle Änderungen an der Seitenanpassung protokolliert.
- cmrf.log: Enthält Log-Meldungen vom CMRF (ConSol CM Reporting Framework), d. h. Meldungen über Datenübertragungen von der ConSol CM-Datenbank an die CMRF-Datenbank (DWH).
- cmweb.log: Enthält Log-Meldungen vom Web Client.
- ctx.log: Enthält Log-Meldungen vom Spring Framework.
- errors.log: Enthält nur Log-Meldungen, die mindestens das Log-Level ERROR haben.
- etl-runner.log: Enthält Log-Meldungen von ETL Runner. Wenn ETL Runner als Standalone-Applikation ausgeführt wird, heißt die Datei
etlRunner.log
. - index.log: Enthält Log-Meldungen zum Index.
- mail.log: Enthält Log-Meldungen zum E-Mail-System.
- operationtimes.log: Enthält Log-Meldungen mit den Laufzeiten der Anfragen, um mögliche Performance-Engpässe zu erkennen. Die Protokollierung wird mit der System-Property
cmweb-server-adapter
,request.log.threshold.milliseconds
konfiguriert. - operationtimes-db.log: Enthält Log-Meldungen mit den Datenbankzugriffszeiten von atomaren Operationen, um mögliche Performance-Engpässe zu erkennen. Die Protokollierung wird mit den System-Properties
cmas-core-server
,dao.log.threshold.milliseconds
undcmas-core-server
,dao.log.username
konfiguriert. - operationtimes-rest.log: Enthält Log-Meldungen mit den Laufzeiten von REST-Anfragen. Die Anfrage-URL und die für die Verarbeitung der Anfrage benötigte Zeit werden auf dem Level DEBUG protokolliert. Die Protokollierung wird mit den System-Properties
cmas-restapi-core
,request.log.threshold.milliseconds
undcmas-restapi-core
,request.log.username
konfiguriert. - operationtimes-search.log: Enthält Log-Meldungen mit Laufzeiten für Suchen. Die Protokollierung wird mit der System-Property
cmas-core-server
,search.log.threshold.milliseconds
konfiguriert. - scripts-output.log: Enthält Log-Meldungen, die von Skripten erzeugt werden.
- security.log: Enthält Log-Meldungen, die sich auf Sicherheit, Autorisierung und Authentifizierung beziehen.
- server.log: Enthält alle Log-Meldungen, die mindestens Log-Level INFO haben.
- session.log: Enthält Meldungen über Anmeldungen (Session-Starts) und Session-Timeouts von Benutzern.
- sql.log: Enthält Log-Meldungen zu SQL-Anweisungen aus Hibernate, wenn das Level DEBUG gesetzt ist (standardmäßig ist INFO gesetzt).
- support_libs_errors.log: Enthält Fehlermeldungen aus unterstützenden Bibliotheken, die von ConSol CM korrekt behandelt wurden (auf diese Weise bleibt die
server.log
übersichtlich). - timer-manager.log: Enthält zusätzliche Log-Meldungen mit dem Log-Level DEBUG, wenn Workflow-Timer aktiviert oder deaktiviert werden. Informationen über das Eskalationsdatum werden ebenfalls protokolliert.
- track_jersey.log: Enthält Log-Meldungen aus CM/Track.
- trackv3.log: Enthält Log-Meldungen aus CM/Track V3.
- transfer.log: Enthält Log-Meldungen über den Export / Import von Szenariodateien.
- tx.log: Enthält Log-Meldungen zu Transaktionen des Spring-Frameworks.
- unit-deletion.log: Enthält Informationen über die Löschung von Kontakten.
- workflow.log: Enthält Log-Meldungen über aktivierte / neu initialisierte / deaktivierte Timer, die mit Log-Level INFO protokolliert werden und die gesamte Debug-Ausgabe im Zusammenhang mit der Workflow-Engine.
Struktur der Log-Dateien
In der Standardkonfiguration haben die Einträge in der Log-Datei folgende Syntax:
Datum Zeitstempel Loglevel [Logger] Meldung
Beispiel für einen Eintrag in einer Log-Datei:
2020-10-11 13:52:44,526 INFO [reemarker.FreeMarkerConfigurer] [-] ClassTemplateLoader for Spring macros added to FreeMarker configuration
Die Komponenten der Meldung:
- Datum: 11. Oktober 2020
- Zeitstempel: 13:52:44
- Log-Level: INFO
- Logger: reemarker.FreeMarkerConfigurer. Name der Java-Klasse, nicht der vollständige Name sondern die letzten 30 Zeichen. Der komplette Name wäre Freemarker.FreeMarkerConfigurer.
- Meldung: ClassTemplateLoader for Spring macros added to FreeMarker configuration
Einfache Meldungen und Meldungen zu einer erfolgreichen Operation haben häufig nur eine Zeile. Wenn Fehler auftreten (Log-Level ERROR), sehen Sie möglicherweise Stacktraces in den Logs.
Grundlegende Aufgaben
Zugriff auf Log-Dateien mit der Web Admin Suite.
Auf der Seite Log-Dateien im Menü Betrieb können Sie auf die Log-Dateien zugreifen, die im Standardverzeichnis gespeichert sind. Beim Öffnen der Seite werden die neusten Zeilen der Datei server.log
angezeigt.
Sie können auf der Seite folgende Aktionen durchführen:
- Log-Datei anzeigen: Wählen Sie die gewünschte Log-Datei im Auswahlfeld auf der linken Seite. Alle Log-Dateien, die im Standardverzeichnis,
<JBOSS_HOME>/standalone/log
, gespeichert sind, sind verfügbar. Sie können auf das Icon Vollbild klicken, um die Log-Datei im Vollbildmodus anzuzeigen. Über das Icon Text umbrechen / Text nicht umbrechen können Sie entscheiden, ob die Log-Meldungen umgebrochen werden sollen oder nicht - Log-Dateien herunterladen: Klicken Sie auf den Button Log-Dateien herunterladen, und wählen Sie die Log-Dateien, die Sie herunterladen möchten. Die aktuell angezeigte Datei ist vorausgewählt. Sie können zusätzliche Log-Dateien auswählen, um mehrere Dateien gleichzeitig herunterzuladen. Wenn mehrere Dateien ausgewählt sind, werden sie als ZIP-Datei heruntergeladen. Sie können auf Alle Log-Dateien herunterladen klicken, um alle Log-Dateien zur ZIP-Datei hinzuzufügen.
- Log-Dateien aktualisieren: Standardmäßig werden die Log-Dateien alle 5 Sekunden aktualisiert. Bei Bedarf können Sie den Selektor auf Jede Sekunde aktualisieren oder Nicht automatisch aktualisieren ändern. Sie können die Log-Dateien jederzeit manuell neu laden, indem Sie auf das Icon Aktualisieren klicken.
- Anzeigereihenfolge ändern: Die neusten Zeilen werden oben angezeigt, wenn die Checkbox Neuste Zeilen zuerst anzeigen ausgewählt ist. Deaktivieren Sie diese Checkbox, um die ältesten Zeilen zuerst anzuzeigen.
Logging in Skripten
Sie können Log-Ausgaben zu Ihren Skripten hinzufügen, indem Sie den Ausdruck log
mit dem gewünschten Log-Level verwenden.
log.info "This is my log message."
Meldung des Levels DEBUG erscheinen nur in den Log-Dateien, wenn die Logging-Konfiguration entsprechend angepasst wurde. Vermeiden Sie unnötige Operationen, indem Sie prüfen, ob Debugging aktiv ist:
if (log.isDebugEnabled()) {
log.debug("Processing ticket ${ticket.name}")
}
Erweiterte Aufgaben
Konfigurieren der Protokollierung
Der Standardpfad für die Log-Dateien ist <JBOSS_HOME>/standalone/log
. Der Speicherort der Log-Dateien und das Logging-Verhalten kann in den jeweiligen Konfigurationsdateien konfiguriert werden:
- cm6-config.properties: JBoss EAP- / Wildfly-Standalone-Installationen mit oder ohne CMRF
- cm6-domain-config.properties: JBoss EAP-Cluster-Installation
- trackv3.properties: CM/Track V3 als Standalone-Applikation
- cmrf.properties: CMRF als Standalone-Applikation
Erweiterte Logging-Konfiguration
Für das Logging-Subsystem von ConSol CM wird das integrierte Logging-Modul von JBoss EAP verwendet. In der Regel sind bei einer Standard-Standalone-Installation von ConSol CM keine Änderungen erforderlich.
Die Log-Dateien werden unter <JBOSS_HOME>/standalone/log
gespeichert.
Die Konfiguration des Logging-Subsystems wird in einer der folgenden Dateien definiert, abhängig von der Infrastruktur Ihres CM-Systems. Normalerweise brauchen Sie die XML-Dateien nicht zu bearbeiten.
- Nur ConSol CM:
<JBOSS_HOME>/standalone/configuration/cm6-<DB>.xml
- ConSol CM mit CMRF/DWH:
<JBOSS_HOME>/standalone/configuration/cm6-dwh-<DB>.xml
Sie können die Standardkonfiguration in der jeweiligen Konfigurationsdatei ändern:
- Nur ConSol CM oder ConSol CM mit CMRF/DWH:
<JBOSS_HOME>/bin/cm6-config.properties
- Standalone CMRF:
<CMRF_HOME>/cmrf.properties
Für die Konfiguration des Logging-Verhaltens ist der folgende Abschnitt der Konfigurationsdatei relevant:
<subsystem xmlns="urn:jboss:domain:logging:3.0">
Innerhalb des Abschnitts dieses Subsystems werden die Datei-Handler definiert, jeder in einem separaten Unterabschnitt. Standardmäßig werden periodisch rotierende Datei-Handler verwendet. Für jeden Tag wird eine Log-Datei erstellt. Wenn die maximale Größe von 50 MB überschritten wird, wird für diesen Tag eine neue Datei angelegt. 10 Dateien werden als Backup aufbewahrt.
Beispiel aus dem Abschnitt index.log
:
<periodic-size-rotating-file-handler name="INDEX_FILE" autoflush="true">
<level name="${handler.indexfile.level:INFO}"/>
<formatter>
<pattern-formatter pattern="%d %-5.5p [%30.-30c] [%X{username}-%X{context}-%X{sessionId}] %m%n"/>
</formatter>
<file relative-to="jboss.server.log.dir" path="index.log"/>
<suffix value=".yyyy.MM.dd"/>
<max-backup-index value="${handler.indexfile.max.backup.index:10}"/>
<rotate-size value="${handler.indexfile.rotate.size:50m}"/>
<append value="true"/>
</periodic-size-rotating-file-handler>
Unterhalb der Datei-Handler werden die Logger definiert. Für jeden Logger werden die Zieldatei(en) und die Log-Level angegeben.
<logger category="com.consol.cmas.core.index" use-parent-handlers="false">
<level name="${logger.com.consol.cmas.core.index.level:INFO}"/>
<handlers>
<handler name="INDEX_FILE"/>
</handlers>
</logger>
Das bedeutet, dass der Logger für Klassen, die zu com.consol.cmas.core.index
gehören, in die Datei INDEX_FILE
schreibt, die im obigen Abschnitt des Datei-Handlers definiert ist.
Die Variablen in der Syntax ${Einstellung:Wert}
, z. B. ${handler.indexfile.level:INFO}
, bezeichnen Parameter, die in der Datei <JBOSS_HOME>/bin/cm6-config.properties
überschrieben werden können.
Ändern der Standardeinstellungen
Bitte gehen Sie wie folgt vor, um die Loggin-Einstellungen zu ändern:
- Suchen Sie die Logging-Konfiguration in der Datei
cm6-<DB>.xml
odercm6-dwh-<DB>.xml
- Fügen Sie Einträge mit den gewünschten Werten in die Datei
cm6-config.properties
ein.
Das folgende Beispiel zeigt, wie Sie die Standardeinstellungen mithilfe der Datei cm6-config.properties
ändern können.
Ziel: Sie möchten das Log-Level der Datei index.log
auf DEBUG ändern.
-
Suchen Sie den entsprechenden Handler in der Konfigurationsdatei (Beispiel aus
cm6-mysql-5.xml
).<periodic-size-rotating-file-handler name="INDEX_FILE" autoflush="true">
<level name="${handler.indexfile.level:INFO}"/>
<formatter>
<pattern-formatter pattern="%d %-5.5p [%30.-30c] [%X{username}-%X{context}-%X{sessionId}] %m%n"/>
</formatter>
<file relative-to="jboss.server.log.dir" path="index.log"/>
<suffix value=".yyyy.MM.dd"/>
<max-backup-index value="${handler.indexfile.max.backup.index:10}"/>
<rotate-size value="${handler.indexfile.rotate.size:50m}"/>
<append value="true"/>
</periodic-size-rotating-file-handler> -
Suchen Sie die Variable für das Log-Level. Diese ist
${handler.indexfile.level:INFO}
. -
Fügen Sie einen Eintrag für diese Variable in
cm6-config.properties
hinzu.
# logging overrides
handler.indexfile.level=DEBUG
Andere Änderungen, die Sie vornehmen können:
- Größe der einzelnen Log-Dateien ändern: Setzen Sie den Wert (in MB) des Parameters
rotate-size
, z. B.handler.indexfile.rotate.size=50
. - Anzahl der Kopien, die gespeichert werden, ändern: Setzen Sie den Wert des Parameters
max-backup-index
, z. B.handler.indexfile.max.backup.index=1
. - Bestimmtes Modul debuggen: Setzen Sie das Log-Level für den entsprechenden Logger auf DEBUG, z. B.
logger.com.consol.cmas.core.index.level=DEBUG
.
Wenn es für eine Einstellung, die Sie ändern möchten, keine Variable gibt, können Sie die Datei cm6-<DB>.xml
oder cm6-dwh-<DB>.xml
direkt bearbeiten. Dies ist z. B. erforderlich, wenn Sie das Muster für die Einträge in der Log-Datei ändern wollen (Attribut pattern-formatter
).
Aktivieren der Datei access.log
In einer Standardinstallation sind die folgenden Zeilen in der Konfigurationsdatei, cm6-<DB>.xml
oder cm6-dwh-<DB>.xml
, auskommentiert. Durch Einkommentieren dieser Zeilen aktivieren Sie die Zugriffsprotokollierung in Ihrem ConSol CM-System.
<server name="default-server">
<http-listener name="default" max-post-size="${max-post-size-bytes:104857600}"
socket-binding="http"
redirect-socket="https"
enable-http2="true"/>
<ajp-listener name="ajp" socket-binding="ajp"
max-post-size="${max-post-size-bytes:104857600}"/>
<https-listener name="https" max-post-size="${max-post-size-bytes:104857600}"
socket-binding="https"
ssl-context="applicationSSC"
enable-http2="true"/>
<host name="default-host" alias="localhost"><!--
<access-log pattern="%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i %S %T" directory="${jboss.server.log.dir}" prefix="access" suffix=".log" worker="default"/>
--><location name="/" handler="welcome-content"/>
<http-invoker/>
</host>
</server>