Zum Hauptinhalt springen
Version: 6.18

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 und cmas-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 und cmas-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:

  1. Suchen Sie die Logging-Konfiguration in der Datei cm6-<DB>.xml oder cm6-dwh-<DB>.xml
  2. 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.

  1. 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>
  2. Suchen Sie die Variable für das Log-Level. Diese ist ${handler.indexfile.level:INFO}.

  3. 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"/>
<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>