Как я могу генерировать отдельные журналы для разных URL-адресов HTML-адресов?

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

Я поместил следующее в свой /etc/apache2/apache2.conf (фактически через Include my-logging.conf ):

 SetEnvIf Request_URI "^/download/.+$" download_access CustomLog /home/jamie/apache-logs/download.log common env=download_access 

Каталог /home/jamie/apache-logs/ и файлы в нем универсальны для записи, но когда я обращаюсь к ресурсу через мой браузер ( http://download/index.html ), главный журнал доступа ( /var/log/access.log ), но не журнал, на который я надеялся: /home/jamie/apache-logs/download.log остается нетронутым.

Я достаточно уверен, что mod_setenvif уже включен:

 $ sudo a2enmod setenvif Module setenvif already enabled 

Как я могу сделать эту работу?

Головная пощечина!

Ошибка регулярного выражения:

 SetEnvIf Request_URI "^/download/.+$" download_access 

должно быть:

 SetEnvIf Request_URI "^/download/.*$" download_access 

Обратите внимание * на + .

РЕДАКТИРОВАТЬ:

Нет, это было регулярное выражение. Головная пощечина правильная.


Вы посмотрели, есть ли места в /etc/apache2/apache2.conf или в других файлах с включенными сайтами (возможно, /etc/apache2/sites-enabled/foo.conf или /etc/apache2/conf/foo.conf или что-то … я использую другой дистрибутив), которые имеют разные определения CustomLog ?

Существует более чем вероятно что-то превышение вашего заявления. Лучшее место для размещения директивы CustomLog находится в строфе которая определяет ваш сайт. Таким образом, директива будет иметь наивысший приоритет, поэтому она переопределит настройки сервера. Я думаю, что ваше определение устанавливает значение по умолчанию для сервера, но более конкретный пользовательский оператор находится внутри VirtualHost и переопределяет его.