Ist es eine schlechte Idee, Audit / Access / Transaktionsprotokollinformationen direkt in das Dateisystem zu schreiben?

Zusätzlich zu einigen benutzerdefinierten Post-Typen verfügt meine Anwendung über zwei benutzerdefinierte Tabellen in der WP-database. Ich möchte alle Einfügungen / Aktualisierungen / Löschungen für diese beiden Tabellen aufzeichnen.

Dieser Audit-Trail wird nicht mit einem Frontend abgeschlossen und wird nicht oft verwendet. Ich würde es gerne für meine eigenen diagnostischen Zwecke einsetzen. Die Anwendung wird an 5-10 Standorten installiert, und ich erwarte, dass weniger als 10.000 dieser Aktionen pro Jahr an jedem Standort stattfinden.

Ich denke über diese Optionen nach:

  1. ein benutzerdefinierter Post-Typ (ohne Post-Meta)
  2. eine benutzerdefinierte Tabelle in der WP-database
  3. eine einfache Append-Only-Datei im Dateisystem

Option 3 scheint am einfachsten zu sein und vermeidet es, die WP-database mit diesen unkritischen Daten zu belegen. Aber das Schreiben von Daten direkt in das Dateisystem scheint irgendwie falsch zu sein, und es scheint kein allgemeiner Ansatz zu sein.

Gibt es gute Gründe, die Optionen 1 oder 2 zu wählen, anstatt in das Dateisystem zu schreiben?

Solutions Collecting From Web of "Ist es eine schlechte Idee, Audit / Access / Transaktionsprotokollinformationen direkt in das Dateisystem zu schreiben?"

Es ist nichts Falsches daran, Protokolle in eine Datei zu schreiben. Sie müssen nur sicherstellen, dass Sie ein spezielles Verzeichnis dafür erstellen und .htaccess hinzufügen, das die Auflistung verhindert und wahrscheinlich den Zugriff darauf vom Web ausschließt.

Es ist nicht übermäßig falsch, Daten in der database zu speichern, vorausgesetzt, Sie tun dies in einer eigenen Tabelle, aber solange Sie die Daten nicht online filtern können, ist es wahrscheinlich nur sinnloser Aufwand (am Ende speichern DBs alles als Dateien). ..).

Der Vorteil einer DB-Tabelle besteht darin, dass sie einfacher mit den WP-DB-APIs erstellt werden kann. Es ist jedoch viel schwieriger, die Informationen zu extrahieren, wenn Sie das vollständige Protokoll benötigen. (Sie müssen den Code explizit schreiben, um das zu tun, könnte in Speicherbeschränkungen laufen, usw.)