Bessere Debug-Protokolle mit diesen Verbesserungen

Automatisch übersetzt von Deepl

Als 4D Entwickler haben Sie vielleicht schon das Debug-Protokoll aktiviert, um Probleme zu beheben. 4D v17 R5 führt mehrere Verbesserungen ein, die Sie bei der Analyse dieser Dateien unterstützen, wie z.B. die Protokollierung nur des aktuellen Prozesses und die Protokollierung von Aufrufen von Member-Methoden (Sammel- oder Objektmethoden).

Neuer Selektor für die Prozessprotokollierung

Der Befehl SET DATABASE PARAMETER Befehl akzeptiert nun einen neuen Selektor, Current process debug log recording. Wird er von einem beliebigen Teil eines Prozesses aus aufgerufen, startet er die Protokollierung nur für den aktuellen Prozess und erstellt eine Datei „4DDebugLog_pX_Y.txt“ im 4D Logs-Ordner (wobei X die PUID des Prozesses und Y die Nummer der Sequenzdatei ist). Natürlich können Sie den Status des Prozess-Debug-Logs auch über diesen neuen Selektor mit dem Befehl Get database parameter abrufen.

SET DATABASE PARAMETER(Current process debug log recording;2+4+8)

Sie können weiterhin den Debug log recording Selektor verwenden, um Protokolle der Aktivitäten aller Prozesse aufzuzeichnen, mit Ausnahme der Prozesse, die von Current process debug log recording.

Zur Erinnerung: Mit dieser Codezeile können Sie leicht auf die Debug-Protokolle zugreifen:

SHOW ON DISK(Get 4D folder(Logs folder))

In der folgenden Abbildung sehen Sie die von fünf Prozessen erzeugten Protokolle:

Denken Sie daran, dass SET DATABASE PARAMETER nicht thread-sicher ist und der Prozess im kooperativen Modus startet.

mitglied METHODS logging

Standardmäßig enthalten die Debug-Protokolle jetzt auch Aufrufe von Member-Methoden. Sie werden mit der Befehlsartnummer 9 protokolliert. Wenn Sie nicht möchten, dass die Mitgliedsmethoden einbezogen werden, rufen Sie einfach den SET DATABASE PARAMETER Befehl und die Selektoren Debug log recording oder Current process debug log recording mit einer neuen Option auf, die den Wert 32 hat. Sie können die Optionen immer noch kombinieren, um die gewünschten Debug-Protokolle zu erhalten.

Dieses Beispiel zeigt, wie man die WiFi- und Ethernet-Schnittstellen in separaten Sammlungen protokolliert:

SET DATABASE PARAMETER(Current process debug log recording;2+4+8)
C_COLLECTION ($_networkInterfaces;$_ethernet;$_wifi)
$_networkInterfaces:=Get system info.networkInterfaces
$_ethernet :=$_networkInterfaces.query("type = :1"; "ethernet")
$_wifi :=$_networkInterfaces.query("type = :1"; "wifi")
SET DATABASE PARAMETER (Current process debug log recording;0)

Der Code gibt zurück:

blank

Mehr Sicherheit

Bisher wurden beim Starten von Protokollen so lange Dateien erzeugt, bis kein Speicherplatz mehr verfügbar war. Um Fehler oder eine versehentliche Aktivierung im 4D Server Administrationsfenster zu vermeiden – was gefährlich sein könnte – ist die Anzahl der erzeugten Dateien standardmäßig auf 50 begrenzt. Sie können diese Grenze mit dem Befehl SET DATABASE PARAMETER Befehl und den Selektor Circular log limitation ändern.

// Limit the number of logs files to 100 (the default number is set to 50)
SET DATABASE PARAMETER(Circular log limitation;100)

Avatar
- Product Owner - Damien Fuzeau ist seit Februar 2019 Mitglied des 4D Produktteams. Als Product Owner ist er für das Schreiben von User Stories zuständig, die er dann in funktionale Spezifikationen umsetzt. Zu seinen Aufgaben gehört es auch, dafür zu sorgen, dass die gelieferten Funktionsimplementierungen den Anforderungen der Kunden entsprechen. Damien hat an der Universität von Nantes einen Abschluss in Softwaretechnik gemacht. Er verbrachte mehr als 23 Jahre in seinem früheren Unternehmen, zunächst als Entwickler (er entdeckte 4D im Jahr 1997) und später als technischer Leiter und Softwarearchitekt. Dieses Unternehmen ist ein 4D OEM Partner und hat 4D basierte Geschäftssoftware für Tausende von Usern auf Hunderten von Servern eingesetzt. Damien ist also mit der Entwicklung und dem Einsatz von 4D in einem mehrsprachigen Kontext vertraut.