selber Logdatei erstellen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

selber Logdatei erstellen

Beitrag von Gumfuzi »

Hallo!

wie kann ich selber eine Logdatei erstellen?
Ich habe bereits was gecodet, wo mir als Admin angezeigt wird, wie lange welche SQL-Abfrage gedauert hat, das hilft schon mal bei langen Ladezeiten, um den Übeltäter ausfindig zu machen.
Da ich aber nicht rund um die Uhr online bin, möchte ich gerne eine Logdatei erstellen, die mir anzeigt, welche IP (oder Benutzer) da eine SQL-Abfrage gestartet hat, die den Server lahmt.
Um dabei nicht die DB unnötig zu belasten, möchte ich das gerne in Logfiles protokollieren.

Braucht es mehr Zeit, solche Infos in eine Datei zu schreiben oder geht das via DB schneller - bzw. da das ja viele Einträge werden, was geht bei zB. dem 10.000. Eintrag schneller? (Datei oder DB)
Pro Tag oder ev. Stunde möchte ich eine eigene Datei anfangen lassen, damit die nicht zu groß wird.

Zwar kann ich ja im phpmyadmin sehen, welche Abfrage dauert, kann sie aber nicht einem User zuordnen bzw. einer Datei, von welcher diese abgerufen wird.
Und ich will ja wissen, welche Abfrage da lahmt und durch welchen User die gestartet wurde bzw. von welcher Datei und Zeile aus (inkl. Dauer).
Die Daten kann ich schon auslesen, nun möchte ich sie gerne protokollieren - aber welches Verfahren ist besser?

Danke für eure Tipps!
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag von Gumfuzi »

Hmmm, mit der Verwendung der Datei ist das so eine Sache:
Wenn mehrere User gleichzeitig die Seite aufrufen, dann "strieten" sie sich ja um die Schreibrechte der Log-Datei, man könnte es zwar so einrichten ("flock"?), daß immer nur einer schreiben darf, aber dann warten die anderen solange, was auch nicht Sinn macht.

Nun möchte ich es via DB machen.
macht es einen zeitlichen Unterschied, wenn ich eine 2. DB nur für dieses Loggen einrichte und dort alles reinschreibe oder wenn ich nur einen eigene Tabelle in der Foren-DB einrichte?
Da beide am gleichen Server sind, eher nicht, oder?

*edit*
ist auch quatsch, weil ja pro Seitenaufruf zw. 20 und 50 SQL-Abfragen zu speichern wären...

Werde nun doch versuchen, es via Logfiles zu machen, wobei ich als Dateinamen das Datum mit Uhrzeit sowie User verwende und nur die SQL-Abfragen protokolliere, die zB. über 5 Sekunden dauern.
Dann werden nur die wichtigsten Daten gespeichert, nämlich die, wo es lange dauerte. Dann brauche ich nicht so lange suchen und der Server hat auch nicht soviel zu schreiben ;)
Hoffe, daß meine Idee so funzt...
Antworten

Zurück zu „Coding & Technik“