text: [Erledigt] Herangehensweise Request-Logging - php.de
  [Erledigt] Herangehensweise Request-Logging
  bei uns tritt es in letzter Zeit öfters auf, das ein bestimmter Apache Prozess aus der Reihe tanzt. D.h. er braucht jede Menge Ram und Prozessorleistung und läuft ewig lange.
  Um herauszufinden welcher Request dahinter steckt, würde ich gerne die ausgeführten Requests mitloggen.
  Eigentlich wäre mod_log_config vom Apache dafür bestens geeignet, denn es würde mir alle benötigten Infos liefern, wie Remote-IP, Apache-PID, Url usw.
  Allerdings loggt der Apache das erst nachdem er den Request zu Ende geführt hat und ich will bei mir ja den Übeltäter auf frischer Tat ertappen.
  Mod_log_forensic wäre die Alternative, allerdings ist das überhaupt nicht konfigurierbar. Da bekomme ich also die benötigten Infos leider nicht raus.
  Ich werde also das Logfile wohl per PHP schreiben müssen, bspw. über die bootstrap-File.
  Damit ich das ganze nicht irgenwann in einer gigabytegroßen Datei habe, würde ich gerne das Logging-Prinzip von Unix, also Log -> Archivierung -> Entsorgung, benutzen.
  Leider finde ich im Manual nichts dazu, ob error_log() mit Option 3 das ganze automatisch macht oder ob ich das alles selber einbauen muss.
  Habt ihr sowas schonmal gemacht? Kennt ihr andere/sinnvolle Möglichkeiten?
  Das Ergebnis sollte (hier mit mod_log_config) in etwa so aussehen:
  [18/Apr/2011:15:36:34 +0200] 192.168.0.14 PID:25173 GET example.com /provider/newMessages/count/1
  Für die Archivierung und Entsorgung von Logfiles würde ich den logrotate-Daemon nutzen (ich kann mir nicht vorstellen, dass PHP das selbst macht, dafür ist logrotate zuständig).
  Der Daemon lässt sich beliebig konfigurieren. Du kannst also jede beliebige Datei als Log nutzen.
  [man]syslog[/man]
  Zumindest bzgl. Unix.
  Ahh, thx. Ich glaube damit komme ich weiter.
  PHP selbst kann kein log-rotate, dafür muss man entweder sich auf externe log-rotation tools/deamons verlassen oder logging-frameworks nutzen,
  z.B.: http://logging.apache.org/log4php/
  Es hat ja auch niemand etwas anderes behauptet. Auf den logrotate-Daemon habe ich ja schon hingewiesen.
  PHP selbst kann kein log-rotate
  Ja, aber wenn man error_log nutzt(), um in eine Datei zu loggen, kann man deren Namen ja schon mal wenigstens unter Nutzung von date('...') beeinflussen, um sich stündlich/täglich/wöchentlich/... eine neue Datei erzeugen zu lassen - damit verhindert man ganz simpel, dass alles in einer einzigen Logdatei landet, die irgendwann "riesig" wird.
  Archivieren/Packen älterer Dateien kann man dann immer noch mit einem "externen" Mechanismus machen, der nicht im loggenden Script selber implementiert ist, so dass man dieses nicht unnötig ausbremst.