4D v16.3

LOG FILE TO JSON

Home

 
4D v16.3
LOG FILE TO JSON

LOG FILE TO JSON 


 

LOG FILE TO JSON ( ZielordnerPfad {; maxGröße {; LogPfad {; FeldAtt}}} )  
Parameter Typ   Beschreibung
ZielordnerPfad  Text in Pfad des Zielordners für Export
maxGröße  Lange Ganzzahl in Maximale Größe der JSON Datei zum Erstellen (bytes)
LogPfad  Text in Pfadname des Logbuchs zum Exportieren, ohne Angabe aktuelles Logbuch
FeldAtt  Lange Ganzzahl in Feldbeschreibung Attribut: 1 = Nummer verwenden (Standard), 2 = Name verwenden

Der Befehl LOG FILE TO JSON sichert das aktuelle bzw. das angegebene Journal (Logbuch) im JSON Format.

Ist ein Journal (binäre Datei) in JSON gesichert, lässt sich sein Inhalt vom Datenbankadministrator oder einem anderen Nutzer lesen, um z.B. die Operationen in der Datenbank zu analysieren.

In ZielordnerPfad geben Sie den Pfad des Ordners zum Speichern der JSON Datei an. Sie lautet JournalExport.json.

Die maximale Größe (in bytes) für die exportierte Datei JSON ist standardmäßig 10 MB. Ist dieses Limit erreicht, wird die Datei geschlossen und eine weitere Datei geöffnet. Die Größenbegrenzung für eine JSON Datei reduziert die Speicheranforderung zum Analysieren der Dateien. Wollen Sie die maximale Größe verändern, können Sie einen Wert im Parameter maxGröße setzen. Übergeben Sie 0, um auf die Standardgröße zurückzusetzen. Übergeben Sie einen negativen Wert, gibt es keine Größenbegrenzung

Standardmäßig, also ohne den Parameter LogPfad, sichert der Befehl das aktuelle Journal. Wollen Sie ein bestimmtes Journal exportieren, übergeben Sie seinen Pfad im Parameter LogPfad. Das Journal muss die Endung .journal haben. Um ein archiviertes Logbuch (Endung .4bl) zu exportieren, müssen Sie es zuerst über den Befehl RESTORE konvertieren.

Sie können einen leeren String ("") übergeben, um den Standard Öffnen-Dialog anzuzeigen, damit der Benutzer das Logbuch zum Sichern auswählen kann. Der gewählte Logbuch-Pfad wird in der Systemvariable Document zurückgegeben.

Hinweis: Sichert der Befehl das aktuelle Logbuch, ist die Anwendung nicht gesperrt, d.h. es lassen sich neue Operationen ausführen, während die Datei auf die Festplatte geschrieben wird - diese Operationen werden nicht in die gesicherte Datei aufgenommen.

Beim Exportieren des aktuellen Logbuchs können Sie mit dem Parameter FeldAtt definieren, wie die Felder im exportierten Attribut beschrieben werden: als Zahl (Standard) oder als Name. Sie können eine der folgenden Konstanten unter dem Thema Backup und Wiederherstellen übergeben:

Konstante Typ Wert Kommentar
Field attribute with name Lange Ganzzahl 2 Felder werden über ihren Namen identifiziert. Beispiel: {"Nachname":"Jones"}
Field attribute with number Lange Ganzzahl 1 Felder werden über ihre Nummer identifiziert (Standard, wenn weggelassen). Beispiel: {"5":"Jones"}.

Hinweis: Beim Exportieren eines externen Logbuchs werden Felder immer über ihre Nummer identifiziert.

Die gesicherte JSON Datei enthält alle Operationen, die im Journal protokolliert sind, in Form eines Array mit JSON Objekten. Jedes Objekt enthält mehrere Eigenschaften, die die Operation beschreiben. Hier ein Beispiel:

[
   {
      "operationType":25,
      "operationName":"Modify record",
      "operationNumber":45,
      "contextID":37,
      "timeStamp":"2015-06-11T09:13:17.138Z",
      "dataLen":42,
      "recordNumber":4,
      "tableID":"5AFA15123F991C43B6ACF8B46A914BD0",
      "tableName":"elem",
      "fields": {
            "1": "primkey5",
            "2": -5,
            "5": "data 25"
        },
      "primaryKey": "8"
   },
   {
      "operationType":23,
      "operationName":"Save seqnum",
      "operationNumber":46,
      "contextID":37,
      "timeStamp":"2015-06-11T09:13:17.138Z",
      "sequenceNumber":23,
      "tableID":"5AFA15123F991C43B6ACF8B46A914BD0",
      "tableName":"elem"
   },
   {
      "operationType":24,
      "operationName":"Create record",
      "operationNumber":47,
      "contextID":37,
      "timeStamp":"2015-06-11T09:13:17.138Z",
      "dataLen":570,
      "recordNumber":7,
      "tableID":"5AFA15123F991C43B6ACF8B46A914BD0",
      "tableName":"elem",
      "fields": {
            "1": 9,
            "2": "test value",
            "3": "2003-03-03T00:00:00.000Z",
            "4": "BlobPath: Table 1/Field 4/Data_9ACB28F1A2744FDFA5822B22F18B2E12.png",
            "8": "BlobID: 2"
      },
      "extraData": {
          "task_id": 1,
          "user_name": "Vanessa Smith",
          "user4d_id": 1,
          "host_name": "iMac-VSmith-0833",
          "task_name": "Application process",
          "client_version": -1610541776
      },
      "primaryKey": "9"
   }
]

Hinweis: Übergeben Sie Field attribute with name im Parameter FeldAtt, erscheinen die Objekte "fields" wie folgt:

...
      "fields": {
            "ID": 9,
            "Field_2": "test value",
            "Date_Field": "2003-03-03T00:00:00.000Z",
            "Field_4": "BlobPath: Table 1/Field 4/Data_9ACB28F1A2744FDFA5822B22F18B2E12.png",
            "Field_8": "BlobID: 2"
      },...

 

Die aktuelle Liste der verfügbaren Eigenschaften richtet sich nach der Art der Operation (z.B. Datensatz erstellen, Datensatz löschen, Datensatz ändern, Blob erstellen). Hier die Haupteigenschaften:

  • operationType: interner Code der Operation
  • operationName: Art der Operation, z.B. "Datensatz erstellen," "Datensatz ändern"
  • operationNumber: interne Nummer der Operation im Logbuch
  • contextID: ID des Ausführungskontexts, Details zum Kontext im Bereich extraData
  • timeStamp: Zeitstempel der Operation im Logbuch
  • dataLen: Größe der Daten
  • recordNumber: interne Datensatznummer
  • tableID: interne ID der Tabelle
  • tableName: Name der Tabelle
  • fields: Objekt mit der Liste der Feldnummern (oder Feldnamen) mit ihren Werten. Jedes Feld mit einem geänderten Wert wird protokolliert.
    Bei Werten vom Typ Blob oder Bild wird je nach Speicherort unterschiedliche Information geliefert:
    • Beim Speichern innerhalb der Datendatei lautet die Eigenschaft "BlobID:"+ eine interne Blob Nummer, z.B.: "BlobID:1"
    • Beim Speichern außerhalb der Datendatei lautet die Eigenschaft "BlobPfad:" + Datenpfad, z.B.: "BlobPath: Table 1/Field 6/Data_EE12D091535F9748BCE62EDE972A4BA2.jpg"
  • extraData: Daten des Benutzerkontexts mit Benutzername und ID, Task-Name und ID, Name des Host Rechners und Client Version
  • sequenceNumber: Aktuelle Nummer in der automatisch durchnummerierten Sequenz
  • primaryKey: Wert des Primärschlüssels

Das aktuelle Journal in JSON sichern:

 LOG FILE TO JSON("c:\\4Dv15\\ExportLogs")

Ein bestimmtes Journal mit Feldnamen in JSON sichern:

 LOG FILE TO JSON("c:\\4Dv15\\ExportLogs";0;"c:\\4Dv15\\Backup\\old_myDB.journal";Field attribute with name)

Der Befehl LOG FILE TO JSON ändert den Wert der Variablen OK und Document: Wurde die JSON Datei korrekt gesichert, wird OK auf 1 gesetzt und Document enthält den Pfadnamen des Jounrals. Haben Sie "" in LogPfad übergeben und annulliert der Benutzer das Dialogfenster zum Auswählen der Datei, wird OK auf 0 gesetzt und Document enthält einen leeren String. Wählt der Benutzer eine ungültige Datei aus, wird OK auf 0 gesetzt und Document enthält den Pfadnamen der ungültigen Datei.



Siehe auch 


INTEGRATE MIRROR LOG FILE

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Backup
Nummer: 1352

Dieser Befehl ändert die Systemvariable OKDieser Befehl ändert die Systemvariable DocumentThis command can be run in preemptive processes

 
GESCHICHTE 

Erstellt: 4D v15 R4

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)