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

Отдельные журналы сервера

У нас есть оперативная помощь на нашем сервере, которая генерирует безумное количество журналов доступа, как вы можете себе представить. В настоящее время они добавляются ко всем другим журналам доступа к сайту, на котором они работают. Это затрудняет сортировку журналов ошибок. Есть ли способ указать, что все, что находится в / 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

вы можете добавить сюда дополнительную фильтрацию, если вам нужно

[1] http://httpd.apache.org/docs/2.2/logs.html#piped