Zum Hauptinhalt springen
Inhaltsverzeichnis überspringen

Logging-System des PLANTA-Servers

Basis des Logging-Systems

Informationen

  • Ziel der Entwicklung des hier beschriebenen Logging-Systems war die Vereinheitlichung der unterschiedlichen Mechanismen, die zur Sammlung von Meldungen dienten.

  • Hierbei stand die hohe Anpassbarkeit und Zukunftssicherheit im Fokus.

  • Aufgrund der seit Server 39.5 bestehenden Java-Basis lag die Auswahl eines der zahlreichen in der Java-Welt vorhandenen Logging-Systeme nahe.

  • Die Logging-Fassade SLF4J gepaart mit deren nativer Implementierung Logback zählt unter diesen Systemen zu den fortgeschrittensten.

SLF4J/Logback

  • Wie bei Logging-Systemen üblich wird ein Logger mit einem Namen versehen (meist der voll qualifizierte Klassenname).

  • Log-Nachrichten werden vom Entwickler zusammen mit dem Log-Level, einer Einschätzung der Wichtigkeit der Meldung, diesem Logger übergeben.

  • Log-Levels in SLF4J sind error > warn > info > debug > trace , wobei die Sortierung hier die Wichtigkeit der Nachricht wiederspiegelt.

  • SLF4J ist eine Logging-Fassade; so können zur Kompilierzeit verschiedene Logging-Systeme eingebunden werden (nähere Informationen hierzu finden Sie auf slf4j.org).

  • Eine von den Log-Nachrichten (und vom Quelltext) unabhängige Konfiguration erlaubt die Filterung von Nachrichten und formatierte Ausgabe, die üblicherweise in Dateien erfolgt.

  • SLF4J im Zusammenspiel mit dessen nativer Implementierung Logback bietet besondere Konzepte, die auch im PLANTA-Server Verwendung finden:

    • Mapped Diagnostic Context (MDC): Hier können im Thread-Kontext Schlüsselwert-Paare hinzugefügt werden, mit deren Hilfe Nachrichten dieses Kontextes gesondert behandelt werden können.

    • Marker: Nachrichten können hierdurch "eingefärbt" werden; auch dies erlaubt eine weitreichendere Filterung (z.B. thematische Aufspaltung von Log-Dateien).

  • Die Konfigurationsmöglichkeiten von Logback sind sehr reichhaltig, weshalb Details auf der entsprechenden Dokumentationsseite nachzuschlagen sind.

Hinweis

  • Die bisherigen Logging-Systeme (Eigenentwicklung und Log4j) werden durch das beschriebene Logging-System abgelöst.

PLANTA-spezifische Dokumentation

Nachrichtenidentifikatoren

Details

  • Log-Nachrichten, die ein Log-Level von error , warn oder info besitzen, erhalten einen Nachrichtenidentifikator.

  • Dieser wird in dem Nachrichtentext in Form einer Nummer angegeben.

  • Über diesen Identifikator kann die Beschreibung der Nachricht und, sollte es sich um einen Fehler handeln, Behebungsmaßnahmen eingesehen werden.

  • Ein Verzeichnis aller mit Identifikatoren versehenen Nachrichten ist hier zu finden.

Thematische Einordnung von Nachrichten über Marker

Details

  • In PLANTA-Server dient das Marker-Konzept zur thematischen Einordnung einer Nachricht.

  • Dies erlaubt beispielsweise, einem Benutzer mit fachlichem Hintergrund für ihn wichtige Nachrichten auszugeben, ohne dass administrative Benutzer von für sie unwichtigen Informationen überflutet werden.

  • So können für jeden thematischen Komplex Log-Dateien konfiguriert werden, in die die entsprechenden Nachrichten einsortiert werden, wobei auch Überschneidungen berücksichtigt werden können.

  • In PLANTA-Server werden nur die mit Identifikator versehenen Log-Nachrichten entsprechend markiert; das Nachrichtenverzeichnis gibt die Zuordnungen an.

Aktualisierung der Konfiguration im laufenden Betrieb

Information

  • Die mitgelieferte Konfiguration befindet sich im Installationsverzeichnis unter conf/logback.xml.

Details

  • Logback ermöglicht Konfigurationsänderungen im laufenden Betrieb, sowohl über die Logback-API als auch über die Konfigurationsdatei.

  • Der folgende Ausschnitt zeigt, wie in der mitgelieferten Konfiguration die automatische Aktualisierung der Konfiguration eingeschaltet wird:

CODE
<configuration scan="true" scanPeriod="1 minute">
[...]
</configuration>
  • Die Anweisung scan="true" aktiviert hier die Aktualisierung, über scanPeriod="1 minute" prüft Logback die Konfigurationsdatei jede Minute auf Änderungen.

  • Das in PLANTA-Server implementierte Logging-System umfasst auch native Teile, die von Logback selbst nicht entsprechend aktualisiert werden können.

  • Daher muss die folgende PLANTA-spezifische Anweisung in der zu aktualisierenden Konfigurationsdatei vorhanden sein (wie in der mitgelieferten Konfiguration enthalten):

CODE
<contextListener class="de.planta.server.logging.NativeLevelChangePropagator"/>
  • Zu beachten ist bei der Aktualisierung, dass auch nach Ablauf der konfigurierten scanPeriod die Konfigurationsaktualisierung nicht zwingend sofort durchgeführt wird.

  • Dem liegt zugrunde, dass Logback aus Performance-Gründen die Prüfung nur beim Auftreten jeder 16. Log-Nachricht durchführt.

  • Somit ist es u.U. erforderlich, eine Aktion zu starten (z.B. eine Client-Verbindung herzustellen), um die Aktualisierung zu starten.

Log-Dateien

Details

  • Über die mitgelieferte Konfiguration werden alle Log-Dateien im Verzeichnis log/ des Arbeitsverzeichnisses von PLANTA-Server angelegt.

  • Für den Betrieb relevante Log-Nachrichten werden hier in der Datei PLANTAServer.log ausgegeben.

  • Die Log-Dateien werden täglich rolliert und nach jeweils 14 Tagen gelöscht.

  • Ist ein session-basiertes Logging aktiv (die Vorgehensweise hierzu siehe das nächste Kapitel), so wird für jede Session eine Datei PLANTASession-[SessionID].log erstellt, in die zur Session gehörige Nachrichten ausgegeben werden.

  • Session-Logfiles sind defaultmäßig mit Rotation eingerichtet.

Session-basiertes Logging für Fehleranalysen

Information

  • Um die Erstellung eines session-basierten Logfiles für die Fehleranalyse zu aktivieren, ist es nicht mehr notwendig, die Anpassungen in der logback.xml -Datei vorzunehmen. PLANTA stellt eine zweite Datei logback_debug.xml zur Verfügung, die bereits alle notwendigen Einstellungen beinhaltet. Welche Datei für die Konfiguration verwendet wird, kann im Parameter logback definiert werden.

Vorgehensweise

  • Die gewünschte Datei im Parameter logback definieren.

  • Nachdem das Logfile erstellt wurde, die Konfiguration bei Bedarf wieder ändern.

Spezielle Namensräume

Namensraum

Beschreibung

de.planta.server

Der Namensraum des PLANTA-Servers

de.planta.server.native

Log-Nachrichten aus den nativen Programmteilen werden innerhalb dieses Namensraumes ausgegeben

de.planta.server.python

Aus dem Python-Kontext über die Schnittstelle gesendete Nachrichten werden innerhalb dieses Namensraumes ausgegeben

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.