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

Централизовать журнал Apache для всех ошибок 404 в отдельный файл (для всех доменов)?

Можно ли настроить журнал Apache для всех доменов в один сингл централизованный файл, Кроме обычные файлы журналов (те, которые я тоже хочу).

Я бы даже предпочел только 404 (доступ), поэтому один файл журнала для всех доменов и только 404 сообщения (при сохранении файлов журнала, которые настроены в каждом виртуальном домене)?

ОБНОВЛЕНИЕ 1: доступ к файлам журнала

ОБНОВЛЕНИЕ 2: я ищу вариант конфигурации для всего сервера, я не хочу настраивать каждую конфигурацию. И сообщение должно быть зарегистрировано как в журнале доступа к домену и основной журнал.

Директива CustomLog имеет env= параметр, который можно добавить в конце. Затем его можно настроить с помощью mod_rewrite. Файл конфигурации должен содержать что-то вроде этого:

RewriteEngine On
# exclude directory index
RewriteCond %{REQUEST_URI} !/index\.(php|html?)$
# exlcude auto-index of directories
RewriteCond %{REQUEST_URI} !/$
# if the request is not a file, directory, or symlink
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
# set the "notfound" environment variable
RewriteRule ^ - [E=notfound:true,L]

CustomLog /var/log/apache2/404-requests.log common env=notfound
CustomLog /var/log/apache2/requests.log common env=!notfound

Пользовательский файл журнала 404-requests.log будет регистрировать события только тогда, когда notfound среда установлена, а журнал requests.log будет записывать все остальное.

Я так понимаю, у каждого VirtualHost есть свои собственные директивы ведения журнала? Если это так, они перезаписывают любые глобальные директивы.

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