Apache: конфігуруйте «налагодження LogLevel» лише для певних модулів?


13

Я хочу налагодити деякі проблеми з аутентифікацією та авторизацією на своєму веб-сервері, особливо з mod_authnz_ldap та іншими модулями mod_auth *.

Тому я встановив LogLevel debugу конфігурації Apache глобально або для одного VirtualHost. Це дає мені корисну інформацію від mod_authnz_ldap, але вона також виводить тонни шуму з модулів SSL. Дивіться приклад нижче.

Чи є спосіб зменшити LogLevel для ssl_engine *, зберігаючи ще й loglevel для mod_authnz_ldap?

Так, я міг би виключити рядки, використовуючи щось подібне grep -v ssl_engine logfile, але я також хочу виключити ці додаткові дані з деяких інших інструментів розбору системного журналу. Я б скоріше скоротив журнал із джерела, а не виключав його в пункті призначення.

[Tue Jul 06 16:55:31 2010] [debug] ssl_engine_io.c(1830): | 0100: 12 23 e7 0f 45 1f 1f d3-ed 12 f8 12 1f a9 90 85  .+..(........... |
[Tue Jul 06 16:55:31 2010] [debug] mod_authnz_ldap.c(474): [client 10.10.10.123] [96991] auth_ldap authenticate: accepting joe
[Tue Jul 06 16:55:31 2010] [debug] mod_authnz_ldap.c(730): [client 10.10.10.123] [96991] auth_ldap authorise: require group: authorisation successful (attribute memberUid) [Comparison true (cached)][Compare True]
[Tue Jul 06 17:02:17 2010] [debug] ssl_engine_io.c(1830): | 0023: 23 ff 29 5a 4b bd 4c e6-bc 36 22 9c c3 22 c2 4b  ..)ZK.L..6u....K |
[Tue Jul 06 17:02:17 2010] [debug] ssl_engine_io.c(1830): | 0023: 23 ff 29 5a 4b bd 4c e6-bc 22 75 9c c3 b6 22 4b  ..)blahblah|

Відповіді:


16

Я відповідаю на власне запитання, Стиль небезпеки.

Apache 2.3

Це можливо в Apache 2.3.

Apache> HTTP-сервер> Документація> Версія 2.4> Журнал між модулями говорить:

Побудований журнал

Директива LogLevel дозволяє задавати рівень серйозності журналу на основі модуля. Таким чином, якщо ви вирішите проблему лише з одним конкретним модулем, ви можете збільшити обсяг журналу, не отримуючи також деталей інших модулів, які вас не цікавлять. Це особливо корисно для таких модулів, як mod_proxy або mod_rewrite де ви хочете дізнатися деталі про те, що він намагається зробити.

Зробіть це, вказавши назву модуля у вашій директиві LogLevel:

LogLevel info rewrite:trace5

Це встановлює головний LogLevel для інформації, але перетворює його на trace5 для mod_rewrite.

Це замінює директиви реєстрації модулів, такі як RewriteLog, які були присутні у більш ранніх версіях сервера.

Огляд нових функцій на Apache HTTP Server 2.4 говорить:

Конфігурація по модулю та за каталогами LogLevel Тепер LogLevel може бути налаштований на модуль та на каталог. Нові рівні trace1 to trace8 були додані вище рівня журналу налагодження.

Також дивіться дискусію в списку розсилки Apache-dev .

Apache 2.2 та новіші версії:

Ні, це в даний час неможливо в Apache 2.2. Посібник на сервері HTTP> Документація> Версія 2.2> Модулі "Директива LogLevel" не відображає цю опцію. Єдиний варіант на даний момент - це "греп -v" рядків-порушників.

Apache 2.4 (запропоновано під час написання):

Це буде включено до Apache 2.4. Документи Apache в магістралі (2.3) в даний час кажуть:

Сумісність: конфігурація модулів та директорій доступна в Apache HTTP Server 2.3.6 і пізніших версіях

І:

Визначення рівня без імені модуля поверне рівень для всіх модулів до цього рівня. Визначення рівня з назвою модуля встановить рівень тільки для цього модуля. Можна використовувати ім'я вихідного файлу модуля, ідентифікатор модуля або ідентифікатор модуля, коли кінцевий _модуль опущений як специфікація модуля. Це означає, що наступні три характеристики еквівалентні:

LogLevel info ssl:warn
LogLevel info mod_ssl.c:warn
LogLevel info ssl_module:warn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.