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

APACHE2: Как вести журнал для определенного каталога?

У меня на виртуальном хосте есть такая строка:

CustomLog /var/log/access.log combined

Но я хочу, чтобы в конкретный журнал записывался каждый запрос определенного каталога.

например

В моем паблике есть следующие подкаталоги:

user@/var/www # ls
index.test  images/ test.php

Как вести журнал, когда пользователи запрашивают любой файл внутри images реж?

Редактировать: Основная идея заключается в том, чтобы предотвратить большой рост основного файла журнала и упростить поиск.

Вы можете попробовать установить переменные среды.

Например.

SetEnvIf Request_URI ^/images(/|$) imageslog

CustomLog /var/log/images-access.log combined env=imageslog

Третий аргумент является необязательным и определяет, нужно ли регистрировать конкретный запрос в зависимости от наличия или отсутствия конкретной переменной в серверной среде. Если указанная переменная среды установлена ​​для запроса (или не установлена, в случае 'env=!name' предложение), то запрос будет зарегистрирован.

Переменные среды могут быть установлены для каждого запроса с помощью параметра mod_setenvif и / или mod_rewrite модули. Например, если вы хотите записывать запросы для всех изображений GIF на вашем сервере в отдельный файл журнала, но не в основной журнал, вы можете использовать:

SetEnvIf Request_URI \.gif$ gif-image
CustomLog gif-requests.log common env=gif-image
CustomLog nongif-requests.log common env=!gif-image

Или, чтобы воспроизвести поведение старой директивы RefererIgnore, вы можете использовать следующее:

SetEnvIf Referer example\.com localreferer
CustomLog referer.log referer env=!localreferer

Смотрите также: http://httpd.apache.org/docs/2.2/mod/mod_log_config.html

Я надеюсь это поможет