Hallo Alexander!
Warum so umständlich? Der Apache bringt seit mindestens 1.3 ein rotatelogs-Tool mit, das ohne Service-Ausfall funktioniert. Siehe http://httpd.apache.org/docs/2.2/logs.html#piped. Wenn Dir das Verhalten von Apaches rotatelogs nicht gefällt
Es ist nicht, dass es mir nicht gefällt, und auch nicht, dass ich das nicht kannte (ich habe natürlich zunächst nach mitgelieferten Möglichkeiten gesucht, und kenne diese Seite also)... Aber es funktionierte bei mir nicht:
piped log program '/xampp/apache/bin/rotatelogs.exe logs/access.log 86400' failed unexpectedly
Beim Start des Apache startet ein cmd-Fenster, das nicht schließt (finde ich nicht gerade schön), und so bald ich eine Datei aufrief, poppte ein solches Fenster, ging wieder auf, wieder zu, etc... eine Art Endlosschleife aus der ich nur 'rauskam, wenn ich Apache wieder stoppte...
Aus dem Abschnitt darüber auf der verlinkten Webseite (Log Rotation) bin ich auch nicht schlau geworden.
kannst Du Dir auch ein eigenes schreiben, das eben nicht nach 24 Stunden, sondern immer um Mitternacht GMT oder Localtime die Log-Datei wechselt.
Sowas tut mein Programm ja auch, als geplanter Task um Punkt Mitternacht funktioniert es hervorragend.
Aber nachdem ich heute den müden Schleppi wieder zwangsabschalten musste, und der Apache danach sich nicht starten ließ, habe ich eben etwas länger gesucht, die Ereignisanzeige studiert und etwas gegooglet. Schuld ist die Datei libapr-1.dll im Verzeichnis /xampp/apache/bin:
Ereignisanzeige/Anwendung:
Fehlgeschlagene Anwendung httpd.exe, Version 2.2.6.0, fehlgeschlagenes Modul libapr-1.dll, Version 1.2.11.0, Fehleradresse 0x00004250.
Fehlgeschlagene Anwendung apache.exe, Version 2.2.6.0, fehlgeschlagenes Modul libapr-1.dll, Version 1.2.11.0, Fehleradresse 0x00004250.
Ereignisanzeige/System:
Generate Activation Context ist für E:\xampp\apache\bin\libapr-1.dll fehlgeschlagen. Referenzmeldung: Der Vorgang wurde erflogreich beendet.
Resolve Partial Assembly ist für Microsoft.VC80.CRT fehlgeschlagen. Referenzfehlermeldung: Die referenzierte Assemblierung ist nicht auf dem Computer installiert.
Abhängige Assemblierung "Microsoft.VC80.CRT" konnte nicht gefunden werden. "Last Error": Die referenzierte Assemblierung ist nicht auf dem Computer installiert.
Zufriedenstellende Lösungen habe ich allerdings nicht gefunden. Nach ein paar Mal Um- und Wiederbenennen der libapr-1.dll wollte der Apache dann wieder doch aus den ewigen Jagdgründen auferstehen ;)
Viele Grüße aus Frankfurt/Main,
Patrick
_ - jenseits vom delirium - _
[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Nichts ist unmöglich? Doch!
Heute schon gegökt?