Ich möchte den vhost-Namen in meinem ErrorLog voranstellen und ihn dann in ein von mir geschriebenes Programm einfügen.
Ist es möglich, ein benutzerdefiniertes Fehlerprotokollformat wie beim Zugriffsprotokoll zu schreiben?
Ich möchte den vhost-Namen in meinem ErrorLog voranstellen und ihn dann in ein von mir geschriebenes Programm einfügen.
Ist es möglich, ein benutzerdefiniertes Fehlerprotokollformat wie beim Zugriffsprotokoll zu schreiben?
Antworten:
Informationen zu Rohrleitungen finden Sie in der ErrorLog- Direktive und in den offiziellen Handbucheinträgen zu Piped Logs, die dies recht gut erklären.
Das Abrufen eines benutzerdefinierten Fehlerprotokollformats ist schwieriger. Sie können das Zugriffsprotokoll problemlos anpassen LogFormat, es ist jedoch nichts zum Ändern des Fehlerprotokollformats integriert. Ich bin auf CGI :: Carp gestoßen , ein Perl-Modul zur Ausgabe in das Fehlerprotokoll. Schließlich wird der Apache-Quellcode immer direkt geändert, je nachdem, wie sehr Sie diese Funktion benötigen.
In Apache 2.2 können Sie das Format von error_log nicht einfach ändern - siehe http://httpd.apache.org/docs/2.2/logs.html#errorlog .
Apache 2.4 fügt diese Unterstützung hinzu. Siehe http://httpd.apache.org/docs/2.4/logs.html#errorlog .
Mit Apache 2.4 können Sie die ErrorLogFormatDirektive verwenden.
Syntax: ErrorLogFormat [connection|request] format
Einfaches Beispiel
ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"
Beispiel (Standardformat für MPMs mit Thread)
ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"
Beispiel (ähnlich dem 2.2.x-Format)
ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"
Erweitertes Beispiel mit Anforderungs- / Verbindungsprotokoll-IDs
ErrorLogFormat "[%{uc}t] [%-m:%-l] [R:%L] [C:%{C}L] %7F: %E: %M"
ErrorLogFormat request "[%{uc}t] [R:%L] Request %k on C:%{c}L pid:%P tid:%T"
ErrorLogFormat request "[%{uc}t] [R:%L] UA:'%+{User-Agent}i'"
ErrorLogFormat request "[%{uc}t] [R:%L] Referer:'%+{Referer}i'"
ErrorLogFormat connection "[%{uc}t] [C:%{c}L] local\ %a remote\ %A"
Quelle: ErrorLogFormat-Direktive
%aleer auftauchen würde? Es soll die Client-IP-Adresse sein. Ich habe eine Frage dazu gestellt .
Sie suchen wahrscheinlich nach mod_log_debug .