<-
Apache > HTTP Server > Documentation > Version 2.4 > Modules

Apache Module mod_log_debug

Description:Additional configurable debug logging
Status:Experimental
Module Identifier:log_debug_module
Source File:mod_log_debug.c
Compatibility:Available in Apache 2.3.14 and later

Directives

Topics

top

Examples

  1. Log message after request to /foo/* is processed:
    <Location /foo/>
      LogMessage "/foo/ has been requested"
    </Location>
            
  2. Log message if request to /foo/* is processed in a sub-request:
    <Location /foo/>
      LogMessage "subrequest to /foo/" hook=type_checker expr=%{IS_SUBREQ}
    </Location>
            
    The default log_transaction hook is not executed for sub-requests, therefore we have to use a different hook.
  3. Log message if an IPv6 client causes a request timeout:
                LogMessage "IPv6 timeout from %{REMOTE_ADDR}" "expr=-T %{IPV6} && %{REQUEST_STATUS} = 408"
            
    Note the placing of the double quotes for the expr= argument.
  4. Log the value of the "X-Foo" request environment variable in each stage of the request:
    <Location />
      LogMessage "%{reqenv:X-Foo}" hook=all
    </Location>
            
    Together with microsecond time stamps in the error log, hook=all also allows to determine the times spent in the different parts of the request processing.
top

LogMessage Directive

Description:Log userdefined message to error log
Syntax:LogMessage message [hook=hook] [expr=expression]
Default:Unset
Context:directory
Status:Experimental
Module:mod_log_debug

This directive causes a user defined message to be logged to the error log. The message can use variables and functions from the ap_expr syntax. The messages are logged at loglevel info.

The hook specifies before which phase of request procesing the message will be logged. The following hooks are supported:

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

The default is log_transaction. The special value all is also supported, causing a message to be logged at each phase. Not all hooks are executed for every request.

The optional expression allows to restrict the message if a condition is met. The details of the expression syntax are described in the ap_expr documentation.