Czy można utworzyć niestandardowy dziennik błędów w Apache 2.2?

11

Chciałbym dodać nazwę vhosta do mojego dziennika błędów, a następnie potokować ją do napisanego przeze mnie programu.

Czy można zapisać niestandardowy format dziennika błędów, tak jak ma to miejsce w przypadku dziennika dostępu?

JohnT
źródło
W zależności od konfiguracji możesz mieć ErrorLog dla każdego z wirtualnych hostów. To nie to samo, co zunifikowany plik logowalny, ale to coś.
muffinista

Odpowiedzi:

7

Aby uzyskać informacje na temat pipingu, zobacz dyrektywę ErrorLog i oficjalne wpisy instrukcji Piped Logs, które wyjaśniają to całkiem dobrze.

Uzyskiwanie niestandardowego formatu dziennika błędów jest trudniejsze. Możesz łatwo dostosować dziennik dostępu, LogFormatale nie ma nic wbudowanego do modyfikowania formatu dziennika błędów. Natknąłem się na CGI :: Carp, który jest modułem Perla do wyświetlania w dzienniku błędów. Wreszcie, zawsze modyfikuje się kod źródłowy Apache bezpośrednio w zależności od tego, jak bardzo chcesz tej funkcji.

uesp
źródło
6

Z Apache 2.4 możesz skorzystać z ErrorLogFormatdyrektywy.

Składnia: ErrorLogFormat [connection|request] format

Prosty przykład

ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"

Przykład (domyślny format wątkowych MPM)

ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"

Przykład (podobny do formatu 2.2.x)

ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"

Zaawansowany przykład z identyfikatorami dzienników żądań / połączeń

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"

Źródło: Dyrektywa ErrorLogFormat

zero
źródło
Czy ktoś może zgadnąć, dlaczego %amiałby być pusty? To powinien być adres IP klienta. I napisali pytanie o to.
Bob Stein
1

Prawdopodobnie szukasz mod_log_debug .

Piotr Kieszczyński
źródło
Chociaż masz rację, lepiej byłoby dołączyć tutaj istotne części odpowiedzi na link, na wypadek gdyby link utracił ważność lub został przeniesiony.
HopelessN00b