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 ErrorLogFormat
Direktive 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
%a
leer auftauchen würde? Es soll die Client-IP-Adresse sein. Ich habe eine Frage dazu gestellt .
Sie suchen wahrscheinlich nach mod_log_debug .