[PHP] Benutzeraktion loggen

Matthias

Well-known member
ID: 109860
L
30 April 2006
225
9
Hallo,

nehmen wir an, ich will bestimmte Benutzeraktionen auf einer Webseite aufzeichen. Da stellt sich mir die Frage, was ist besser: Datenbank oder Logdatei.
Wie verhält sich das mit der Sicherheit, sind Logfiles überhaupt für außenstehende interessant, solange keine Systeminformationen vorhanden sind, sondern beispielsweise nur Informationen, welches Script wann aufgerufen wurde?
Was ist mit der Performance? Wenn ich viele Logeinträge schreiben will und dafür eine MySQL-Datenbank verwende, dann kann das ja unter umständen schon die Arbeitsleistung des Servers (halt unter anderem abhängig vom RAM etc.) einschränken. Könnte man in solch einem Fall irgendwas einsparen, wenn man auf Logdateien zurück greift?

Gruß Matthias
 
Wenn du viele Besucher hast, ist denke ich auf jeden Fall eine Datenbank sinnvoller und vielleicht auch einfacher abzusichern.

Kommt halt drauf an, was genau du vor hast.
 
Wenn du an eine Db denkst nehme, um das Script weiterlaufen zu lassen, auf jeden Fall:

INSERT DELAYED
 
hm, je nach art der aufzeichungen, also wenn sie nicht allzu kompliziert und verkünpft sein sollen, sondern einfach nur user xyz hat um ttt seite a aufegrufen etc. dann bieten sich dateien besser an als eine datenbank
(siehe access log vom apache server)

btw datenbank ist ja auch nichts anderes als datei, nur bessere/ leichtere verwaltung und zwischenspeicherung im ram, was aber nur sinnvoll ist, wenn daten direkt auch wieder gelesen werden sollen und vorhandene geändert, was aber bei logs ja meist nicht der fall ist, da heißt es immer nur fleißig schreiben schreiben schreiben, und dann die datei von nem anderen programm auswerten lassen
 
Also ich will halt wirklich nur loggen an welchem Tag und um wieviel Uhr der User von der und der IP das und das Script aufgerufen hat. Und die Daten sollen halt auch zur Auswertung einfach ausgegeben werden. Wird der RAM entlastet, wenn ich Logs in eine Dateischreibe, anstatt sie in eine DB zu schreiben?

Gruß Matthias
 
Also ich will halt wirklich nur loggen an welchem Tag und um wieviel Uhr der User von der und der IP das und das Script aufgerufen hat. Und die Daten sollen halt auch zur Auswertung einfach ausgegeben werden.
Wieso nimmst du nicht leicht das Log des Apachen? Da steht alles drin, du musst es nur auswerten. Sparst dir also die Arbeit, eine zweite Log-Datei mit identischem Inhalt anzufertigen.
 
Wieso nimmst du nicht leicht das Log des Apachen? Da steht alles drin, du musst es nur auswerten. Sparst dir also die Arbeit, eine zweite Log-Datei mit identischem Inhalt anzufertigen.

Da der Apache nicht erkennen kann, welcher User (also regestrierte Besucher) gerade einen Seitenaufruf tätigt?
Und das ist ja scheinbar gewünscht.
 
Ich würde eine Datei nehmen finde sowas gehört nicht in die Datenbank.

Wenn du aber doch lieber die DB nehmen möchtest dann aber eine Tabelle ohne Indexe weil sonst müssen bei jedem „INSERT“ die Indexe neu geschrieben werden, wenn du die Indexe weg lässt belastest du die DB auch nicht stark bis gar nicht weil die Einträge auch nur dran gehangen werden...

Das Parsen des Statements, das öffnen der Verbindung etc. sind für mich aber ein Punkt wo ich mich lieber für eine Datei entscheiden würde.