2016-03-31 10 views
1

Ich arbeite an einer Anwendung mit etwa 75 Datenbanktabellen. Immer wenn ein Datensatz in einer bestimmten Tabelle hinzugefügt/aktualisiert wird, möchten wir diese Daten in einem anderen Speicher protokollieren.Webanwendung - Datenbankprotokollierung

Ab sofort gibt es im Wesentlichen eine Log-Tabelle für jede Tabelle. B. Tabelle_a_log, TabelleB_log usw.

Ereignisse werden ausgelöst, wenn Modelle gespeichert werden (Laravel-App), um die Daten in der entsprechenden Protokolltabelle zu protokollieren.

Meine Frage ist: ist der beste Weg, Logging zu nähern? Wenn wir Protokolle in der Datenbank speichern, sollten wir eine separate Datenbank für die Protokollierung verwenden? Gibt es bessere Alternativen zum Loggen?

+0

Nicht sicher, ob es eine feste Regel als solche gibt. Was ist dein Hauptanliegen? –

+0

Gut, das ist eher wie User Analytics Logging, also Dinge wie Datei-Logging würde nicht funktionieren, weil diese durchsuchbar sein müssten (vielleicht nicht von der App, sondern nach der Tat), so können wir sagen "die meisten Benutzer, die X bevorzugt haben also zwischen diesen Daten während dieser Promotion ". Aber mit 75 Tabellen (mit einer Protokolltabelle für jeden, die zu Millionen von Aufzeichnungen pro Tabelle wachsen könnte) war ich nur neugierig, wie Leute im Allgemeinen mit diesem – djt

+0

umgehen. Sie würden die Analysedaten wie jede andere Datenbankressource behandeln, Sie müssen Optimierung betrachten wann Die Datenbank wird größer. Ich würde vorschlagen, einige Skalierbarkeitsressourcen zu lesen, zB: http://highscalability.com/ –

Antwort

0

Angenommen, Sie verwenden 5.2, hier ist die documentation zum Einloggen in Laravel. Sie können Informationen zu den Standard-Laravel-Protokollen mit etwas wie Log::info('[email protected] was used');

schieben Für erweiterte Protokollierung können Sie Monolog verwenden, die in Laravel direkt aus der Box enthalten ist.

Bearbeiten: Um eine vollständigere Antwort auf Ihre eigentliche Frage zu geben, kommt es darauf an, wofür Sie die geloggten Informationen verwenden. Wenn Sie nur wissen möchten, was passiert, um sicherzustellen, dass nichts kaputt geht, funktioniert die normale Laravel-Protokollierung problemlos. Ich würde persönlich vermeiden, wie Sie es derzeit haben (Logs in einer Datenbank), weil das bedeutet jedes Mal, wenn Sie etwas speichern oder aktualisieren, Sie zwei verschiedene SQL-Aktionen (Speichern der tatsächlichen Daten und dann speichern Sie das Protokoll). Außerdem, Laravels Logging und Monolog gibt es aus einem bestimmten Grund.