Zum Inhalt springen

Apache/11 Logging/Benutzerdefiniert

Aus Foxwiki

Beschreibung

Benutzerdefinierte Debug-Log-Meldungen

In Apache 2.3.14-beta wurde das Modul mod_log_debug hinzugefügt. Es ermöglicht die gezielte Ausgabe benutzerdefinierter Meldungen ins ErrorLog, optional unter einer bestimmten Bedingung. Damit lässt sich beispielsweise prüfen, ob und wann bestimmte Zweige der Konfiguration überhaupt gelesen werden oder ob bestimmte Bedingungen jemals eintreffen. Das Modul stellt nur eine Direktive bereit: LogMessage

LogMessage

Eine Debug-Log-Meldung ins ErrorLog schreiben

Seit Version 2.3.14
Modul mod_log_debug
Kontext <Directory>
Syntax LogMessage Meldung [hook=Hook] [if=Ausdruck]
Standardwert nicht gesetzt

Wenn diese Direktive interpretiert wird, schreibt Apache einen frei definierbaren Meldungstext in die ErrorLog-Datei. Der Meldungstext selbst kann Ausdrücke in der ap_expr-Syntax enthalten, die in Kapitel 6, Grundkonfiguration, im Zusammenhang mit den Direktiven <If>, <ElseIf> und <Else> beschrieben wurde. Das LogLevel der Meldungen ist info

Optional können Sie mit hook=Hook einen der folgenden Hooks angeben; dies bestimmt, in welcher Phase der Anfrage-Verarbeitung die Meldung geschrieben wird - und damit indirekt, welche Variablen und Ausdrücke zu diesem Zeitpunkt überhaupt verfügbar sind

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

Die Bedeutung der einzelnen Hooks wird in Kapitel 17, Apache erweitern, beschrieben. Wenn Sie keinen Hook angeben, wird log_transaction verwendet

Wenn Sie ein Argument vom Typ if=Ausdruck hinzufügen, wird die Meldung nur protokolliert, falls der Ausdruck zutrifft. Die Syntax dieses Ausdrucks entspricht ebenfalls ap_expr

Das folgende Beispiel gibt immer dann eine Log-Meldung aus, wenn der URLPfad /check/ angefordert wird

<Location /check/>
 LogMessage "URL-Pfad /check/ angefordert."
</Location>

Hier ein weiteres Beispiel, das nur für Unterabfragen auf /check/ ausgeführt wird (hier muss explizit ein Hook angegeben werden, da log_transaction bei Unterabfragen nicht ausgeführt wird)

<Location /check/>
 LogMessage "URL-Pfad /check/ in Unterabfrage angefordert." \
 hook=type_checker if=%{IS_SUBREQ}
</Location>