On this page
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 中。