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

Остановить Apache от записи повторяющихся записей журнала в access_log

У меня есть следующие строки, касающиеся входа в мой файл Apache vhost

SetEnvIf Request_URI "^/server-status$" dontlog
SetEnvIf Request_URI "^/haproxy-status$" dontlog
SetEnvIf Request_Method "OPTIONS" dontlog
CustomLog /var/log/apache2/access_log combined env=!dontlog
#ErrorLog  /var/log/apache2/error_log

#Remote logging -- handle by syslog
ErrorLog "|logger -p local3.info -t httperror"
CustomLog "|logger -p local3.info -t http" combined env=!dontlog

LogLevel warn

Я действительно не хочу ничего путать в том, где я не смогу правильно получать свои журналы, но я также не хочу видеть повторяющиеся строки для каждой записи. В настоящее время, если я сделаю один запрос, я вижу одну строку для Apache, а затем одну строку, которая, как я предполагаю, это haproxy, перенаправляющая ее в мое приложение, примерно так:

aa.bbb.ccc.dd - - [05/Oct/2010:02:29:51 +0000] "GET /the_url HTTP/1.1" 200 4 "-" "-"
eee.fff.gg.hh - - [05/Oct/2010:02:29:51 +0000] "GET /the_url HTTP/1.1" 200 4 "-" "-"
aa.bbb.ccc.dd - - [05/Oct/2010:02:31:03 +0000] "GET /another_url HTTP/1.1" 200 4 "-" "-"
eee.fff.gg.hh - - [05/Oct/2010:02:31:03 +0000] "GET /another_url HTTP/1.1" 200 4 "-" "-"

Что мне делать, чтобы этого не произошло?

Помни это директивы журнала в разделе VirtualHost может конфликтовать с директивами журнала из разделов конфигурации "Main". Дублирующиеся строки журнала часто возникают из-за таких строк, как CustomLog /var/log/apache2/access_log в разделе основной конфигурации и второй CustomLog внутри раздела VirtualHost.

Grep для "access_log" во всех ваших файлах конфигурации, чтобы увидеть, есть ли другой раздел, отвечающий за дублированные строки журнала.

Если вы действительно хотите иметь отдельные журналы для своего VirtualHost, обязательно записывайте в отдельные файлы журналов:

В основной конфигурации HTTP:

CustomLog /var/log/apache2/access_log

Внутри раздела:

CustomLog /var/log/apache2/www.thisvhost.org/access_log

Чтобы сохранить простоту и избежать путаницы, я обычно избегаю каких-либо директив ведения журнала в разделе VirtualHost. Позже вы можете разделить журналы по имени VirtualHost. Только не забудьте использовать такой формат, как "Общий формат журнала с виртуальным хостом"(% v или% V).

Другая возможность. Что-нибудь из syslog.conf записывает в файл в / var / log / apache2 / access_log? Это сомнительно, потому что системный журнал использует другой формат журнала.

Эти две строки взяты из apache, haproxy использует другой формат журнала.