Назад | Перейти на главную страницу

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

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

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

В Apache 2.2 вы не можете легко изменить формат error_log - см. http://httpd.apache.org/docs/2.2/logs.html#errorlog.

Apache 2.4 добавляет эту поддержку. Видеть http://httpd.apache.org/docs/2.4/logs.html#errorlog.

Для труб см. Журнал ошибок директива и Трубопроводные бревна официальные записи в руководстве, которые довольно хорошо это объясняют.

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

С 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

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