Можно ли создать собственный журнал ошибок в Apache 2.2?

11

Я хотел бы добавить имя vhost в свой ErrorLog и затем передать его в программу, которую я написал.

Можно ли записать формат журнала пользовательских ошибок, как в журнале доступа?

JohnT
источник
В зависимости от вашей настройки вы можете иметь ErrorLog для каждого из ваших виртуальных хостов. Это не то же самое, что объединенный анализируемый лог-файл, но это нечто.
Маффиниста

Ответы:

7

Для получения дополнительной информации см. Директиву ErrorLog и официальные руководства Piped Logs, которые объясняют это довольно хорошо.

Получить пользовательский формат журнала ошибок сложнее. Вы можете легко настроить журнал доступа, LogFormatно в нем нет ничего встроенного для изменения формата журнала ошибок. Я сталкивался с CGI :: Carp, который является модулем Perl для вывода в журнал ошибок. Наконец, всегда есть исходный код Apache, напрямую зависящий от того, насколько сильно вы хотите эту функцию.

uesp
источник
6

С Apache 2.4 вы можете использовать ErrorLogFormatдирективу.

Синтаксис: ErrorLogFormat [connection|request] format

Простой пример

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

Пример (формат по умолчанию для многопоточных MPM)

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

Пример (аналог формата 2.2.x)

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

Расширенный пример с идентификаторами журнала запросов / подключений

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"

Источник: Директива ErrorLogFormat

значение NULL
источник
Кто-нибудь может догадаться, почему %aбы появиться пустым? Это должен быть IP-адрес клиента. Я отправил вопрос об этом.
Боб Стейн
1

Вы, вероятно, ищете mod_log_debug .

Петр Кещинский
источник
Несмотря на то, что вы правы, было бы предпочтительнее указать основные части ответа по ссылке здесь, в случае, если ссылка пропадает или перемещается.
HopelessN00b