4D Applikationen können verschiedene Protokolldateien/Logbücher erstellen, die hilfreich sind, um das Ausführen von Operationen zu optimieren oder Fehler zu beheben. Protokolle werden in der Regel über Selektoren der Befehle SET DATABASE PARAMETER oder WEB SET OPTION gestartet und gestoppt und im Ordner Logs der Anwendung gespeichert (siehe Abschnitt Beschreibung der 4D Dateien).
Die protokollierten Daten müssen analysiert werden, um Probleme zu finden und zu beheben. Dieser Anhang beschreibt ausführlich den Inhalt folgender Logbücher:
4DRequestsLog.txt
4DRequestsLog_ProcessInfo.txt
HTTPDebugLog.txt
4DDebugLog.txt
Die Dateien nutzen einige Felder gemeinsam, so dass Sie eine Chronologie erstellen und beim Debuggen Einträge miteinander verbinden können:
sequence_number: Diese Nummer ist einmalig in allen Debug Logs und wird für jeden neuen Eintrag unabhängig vom Logbuch erhöht, so dass Sie die exakte Sequenz der Operationen erkennen können.
connection_uuid: Für jeden 4D Prozess, der auf einem 4D Client erstellt wurde, welcher an einen Server angemeldet ist. Diese UUID der Verbindung wird auf Server- und Client-Seite geführt, so dass Sie leicht den remote Client identifizieren können, welcher den Prozess gestartet hat.
Dieses Logbuch protokolliert Standardanfragen jeweils auf dem Rechner mit 4D Server oder 4D Remote, der den Befehl ausgeführt hat (außer Web Anfragen).
Logbuch starten:
auf dem Server:
SET DATABASE PARAMETER(4D Server log recording;1) //Server Seite
Dieses Logbuch protokolliert Angaben zu jedem Prozess, ausgeführt auf dem 4D Server Rechner oder dem 4D Remote Rechner, welcher den Befehl ausgeführt hat (außer Web Anfragen).
Logbuch starten:
auf dem Server:
SET DATABASE PARAMETER(4D Server log recording;1) //Server Seite
Dieses Logbuch protokolliert jede HTTP Anfrage und jede Antwort in unformatierter Form. Protokolliert werden die Anfragen, inkl. Kopfteile; optional lassen sich auch Hauptteile protokollieren.
Dieses Logbuch protokolliert jedes Ereignis, das auf der 4D Programmierebene auftritt in einem kompakten Format mit Tabulatoren, das zusätzliche Angaben enthält (verglichen mit dem Standardformat).
Logbuch starten:
SET DATABASE PARAMETER(Debug Log Recording;2+4) //erweitertes Format mit Tabulatoren
Folgende Felder werden für jedes Ereignis protokolliert:
Spalte #
Beschreibung
1
Einmalige und sequentielle Nummer der Operation in der protokollierten Sitzung
2
Vergangene Zeit seit Protokollstart im Format "hh:mm:ss:ms" (bei Bedarf wird ein Zähler für Tage vorangestellt. Wurde das Protokoll z.B. vor 3 Tagen gestartet, könnte das so aussehen "3+11:58:23:163")
3
Prozess ID
4
Einmalige Prozess ID
5
Stapelebene
6
Kann folgendes anzeigen (je nach Art der protokollierten Eingabe in der 8. Spalte):
ID eines Befehls der Programmiersprache (wenn Typ=1)
Ein Methodenname (wenn Typ=2)
Eine Kombination von PluginIndex;PluginBefehl (wenn Typ=4, 5, 6 oder 7). Kann etwas enthalten wie '3;2'
Eine Task Connection UUID (wenn Typ=8)
oder eine 'startende Sequenznummer' beim Schließen einer Stapelebene (dies sollte der Sequenznummer der gestarteten aktuellen Aktion entsprechen)
121 15:16:50:777 5 8 0 Methodenaufruf 2 0
122 15:16:50:777 5 8 1 283 1 0
123 15:16:50:777 5 8 1 122 -1 0 3
124 15:16:50:777 5 8 0 121 -2 0 61
Hier ist in der Zeile (124) der Wert '121' der 6. Spalte gleich der Sequenznummer der ersten Zeile (Stapelebene 0). In der Zeile (123) ist der Wert '122' der 6. Spalte gleich der Sequenznummer der oberen Zeile (Stapelebene 1) etc.
7
Parameter, die Befehlen, Methoden oder Plug-ins übergeben wurden
8
Art der protokollierten Operation. Dieser Wert kann absolut sein:
Ein negativer Wert bedeutet lediglich, dass es sich um das schließende Gegenstück der Stapelebene handelt (siehe 8. Spalten in den Zeilen 123 und 124 des obigen Protokolls).
9
Formularereignis, wenn vorhanden; ist sonst leer (die Spalte wird benützt, wenn Code in einer Formularmethode oder einem Skript ausgeführt wird)
10
Verbrauchte Zeit in Mikrosekunden für die aktuell protokollierte Aktion; nur für schließende Stapelebenen (siehe 10. Spalten in Zeilen 123 und 124 im Protokoll oben)