Apache:仅为某些模块配置“LogLevel debug”?

Modified on: Fri, 19 Jul 2019 19:00:02 +0800

我想调试一些身份验证&我的网络服务器上的授权问题,特别是mod_authnz_ldap和其他mod_auth *模块。

所以我在Apache配置中设置LogLevel debug,无论是全局还是单个VirtualHost。这为我提供了来自mod_authnz_ldap的有用信息,但它也从SSL模块中喷出大量噪音。请参阅下面的示例。

有没有办法减少ssl_engine *的LogLevel,同时仍然保持mod_authnz_ldap的loglevel?

是的,我可以使用grep -v ssl_engine logfile之类的东西来排除这些行,但我还想从其他一些syslog解析工具中排除这些额外的数据。我宁愿减少来自源的记录,而不是在目的地排除它。

[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|

最佳答案

我正在回答我自己的问题,Jeopardy Style。

Apache 2.3

这在Apache 2.3中是可行的。

Apache> HTTP服务器>文档>版本2.4>每个模块的日志记录说:

  

按模块记录

  
  

LogLevel指令允许您基于每个模块指定日志严重性级别。这样,如果您只对一个特定模块的问题进行故障排除,则可以调高其日志记录
  卷也没有得到你的其他模块的细节
  不感兴趣。这对于诸如此类的模块特别有用
  mod_proxy或mod_rewrite,你想知道什么的细节
  它试图这样做。

  
  

通过在LogLevel指令中指定模块的名称来执行此操作:

LogLevel info rewrite:trace5

  
  

这会将主LogLevel设置为info,但将其设置为trace5 for mod_rewrite。

  
  

这将取代早期版本服务器中存在的每模块日志记录指令,例如RewriteLog。

Apache HTTP Server 2.4中的新功能概述说:

  

每个模块和每个目录的LogLevel配置
  现在可以按模块和每个目录配置LogLevel。新的水平
  在调试日志级别之上添加了trace1到trace8。

另见在Apache-dev邮件列表中的讨论。< / p>

Apache 2.2&amp;早期:

不,目前在Apache 2.2中无法实现。 HTTP Server手册&gt;文档&gt;版本2.2&gt; “LogLevel Directive”模块未显示此选项。目前唯一的选择是“grep -v”违规行。

Apache 2.4(在撰写本文时提出):

这将包含在Apache 2.4中。 主干(2.3)中的Apache文档目前说:< / p>

  

兼容性:可以使用每个模块和每个目录的配置
  在Apache HTTP Server 2.3.6及更高版本中

  

指定没有模块的级别
  name将重置所有级别
  该级别的模块。指定一个
  具有模块名称的级别将设置
  仅适用于该模块的级别。它是
  可以使用模块源文件
  名称,模块标识符或
  带尾随的模块标识符
  _module作为模块规范省略。这意味着
  以下三个规格是
  当量:

LogLevel info ssl:warn
LogLevel info mod_ssl.c:warn
LogLevel info ssl_module:warn

相关问答

添加新评论