Apache 模块 mod_log_debug

Description:其他可配置的调试日志记录
Status:Experimental
Module Identifier:log_debug_module
Source File:mod_log_debug.c
Compatibility:在 Apache 2.3.14 和更高版本中可用

Examples

处理对/ foo/*的请求后的日志消息:

<Location "/foo/">
LogMessage "/foo/ has been requested"
</Location>

如果在子请求中处理了对/ foo/*的请求,则记录日志消息:

<Location "/foo/">
LogMessage "subrequest to /foo/" hook=type_checker "expr=-T %{IS_SUBREQ}"
</Location>

默认的 log_transaction 钩子不用于子请求,因此我们必须使用其他钩子。如果 IPv6 Client 端导致请求超时的日志消息:

LogMessage "IPv6 timeout from %{REMOTE_ADDR}" "expr=-T %{IPV6} && %{REQUEST_STATUS} = 408"

请注意expr=参数的双引号位置。在请求的每个阶段中记录“ X-Foo”请求环境变量的值:

<Location "/">
LogMessage "%{reqenv:X-Foo}" hook=all
</Location>

hook=all与错误日志中的微秒时间戳一起,还可以确定在请求处理的不同部分花费的时间。

LogMessage Directive

Description:将用户定义的消息记录到错误日志中
Syntax:LogMessage message [hook=hook] [expr=expression]
Default:Unset
Context:directory
Status:Experimental
Module:mod_log_debug

此伪指令导致将用户定义的消息记录到错误日志中。该消息可以使用ap_expr syntax中的变量和函数。引用 HTTP Headers 不会导致将 Headers 名称添加到 Vary Headers 中。消息记录在日志级别信息中。

该钩子指定在记录请求处理的哪个阶段之前。支持以下钩子:

Name
translate_name
type_checker
quick_handler
map_to_storage
check_access
check_access_ex
insert_filter
check_authn
check_authz
fixups
handler
log_transaction

默认值为log_transaction。还支持特殊值all,从而导致在每个阶段记录一条消息。并非对于每个请求都执行所有钩子。

可选表达式允许在满足条件时限制消息。 ap_expr documentation中描述了表达式语法的详细信息。引用 HTTP Headers 不会导致将 Headers 名称添加到 Vary Headers 中。