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?


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.



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


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.