У нас есть оперативная помощь на нашем сервере, которая генерирует безумное количество журналов доступа, как вы можете себе представить. В настоящее время они добавляются ко всем другим журналам доступа к сайту, на котором они работают. Это затрудняет сортировку журналов ошибок. Есть ли способ указать, что все, что находится в / livehelp, помещается в другой файл журнала?
Если вы переместите / livehelp на свой VirtualHost (для которого требуется собственное HostName), вы можете настроить журналы, чтобы хранить их отдельно. Вы должны использовать директивы CustomLog и ErrorLog, чтобы указать расположение этих журналов.
<VirtualHost *:80>
ServerName livehelp.example.com
DocumentRoot /path/to/the/livehelp/folder
ErrorLog logs/livehelp-error_log
CustomLog logs/livehelp-access_log combined
</VirtualHost>
<Directory "/livehelp">
CustomLog /my/custom/access.log combined
ErrorLog /my/custom/apache2/error.log
</Directory>
Вы можете использовать функцию piped log [1] apache. Создайте сценарий оболочки, например
#!/bin/sh
PATTERN="/livehelp"
FLAGS="-v"
if [ "x$1" == "xlive" ]; then
FLAGS=""
fi;
grep $FLAGS "$PATTERN" > $2
(не проверено и требует улучшения)
теперь добавьте
CustomLog "|/path/to/script live /var/log/live" combined
и
CustomLog "|/path/to/script std /var/log/std" combined
в конфигурацию apache
вы можете добавить сюда дополнительную фильтрацию, если вам нужно