Я пытаюсь использовать Apache CustomLog
директива для создания некоторых пользовательских файлов журнала, но не может получить его работа. Вот конфигурация, которую я использую для пользовательских журналов:
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog /var/log/apache2/jb_common common
CustomLog /var/log/apache2/jb_referer referer
Apache создает оба из этих пользовательских файлов журнала на запуске, таким образом, он определенно видит CustomLog
директивы, но это никогда ничего не пишет в эти файлы; однако, журнал доступа по умолчанию (access.log
) пишется в.
Какие-либо идеи? Я выполняю Apache 2.2 на Ubuntu 8.10.
У меня та же проблема с сервером Ubuntu 9.10 и Apache 2.2.12. Я устанавливаю сервер Subversion с MOD_DAV_SVN
и добавил CustomLog
Директива по /etc/apache2/mods-Available/dav_svn.conf
для регистрации запросов Subversion , но имел такую же проблему (файл журнала был создан, когда начался Apache, но никогда не был записан):
<Location /svn>
...
</Location>
LogFormat "%t %u %{SVN-ACTION}e" svn_log
CustomLog /var/log/apache2/svn_access.log svn_log env=SVN-ACTION
Есть два обхода для этого вопроса, который я обнаружил, что в основном составляют то же самое. Я документирую как здесь, потому что у них разные плюсы и минусы.
Удалить CustomLog
Директива из файла конфигурации, если у вас его установлено в отдельном файле конфигурации.
Добавьте CustomLog
Директива на ваш сайт Virtualhost
вход. Для меня это было в / etc / apache2 / sites - доступны / default-ssl
, потому что я разрешаю только доступ SSL к репозитории Subversion. Если вы используете / etc / apache2 / fitsies - доступны / default
, вы захотите отредактировать этот файл вместо этого (или в дополнение к по умолчанию-SSL
, если вы используете оба).
Перезапустить Apache:
Перезапуск Sudo /etc/init.d/apache2
Pro
Вы можете иметь несколько CustomLog
директивы в Virtualhost
для вашего Сайт, и они будут все работать.
CON
Вы должны переместить Customleg
в записи Virtualhost
вместо того, чтобы иметь его в отдельном файле конфигурации.
Прокомментируйте директиву CustomLog
в своем сайте Virtualhost
вход. Если вы используете один из конфигураций сайта по умолчанию ( по умолчанию
или по умолчанию-SSL
), будет представлять собой директиву Customleg
для журнала доступа, который вы будете Нужно прокомментировать (да, это отключает регистрацию доступа к по умолчанию Apache).
Добавьте ваш CustomLog
Директива к соответствующему файлу конфигурации. Для меня это было /etc/apache2/mods-available/dav_svn.conf
.
Перезапуск Apache:
Sudo /etc/init.d/apache2 Перезапуск
Pro
Вы можете сохранить форму CustomLog
Directive в отдельном файле конфигурации.
CON
Этот обходной путь имеет очевидный недостаток, который вы должны отключить регистрацию доступа к умолчанию Apache, но для меня мне все равно, так как я использую только сервер для доступа к Subversion.
Ни один из этих обстоятельств не на самом деле идеально, но до сих пор я не нашел способа получить его на работу, отличный от двух разрабатываний выше. Я предполагаю, что нам придется ждать следующего выпуска Apache для этого вопроса, чтобы быть исправленным.