如何在Apache的ErrorLogFormat中加入Cookie值或Session ID值?

如何在Apache的ErrorLogFormat中加入Cookie值或Session ID值?

我想在 Apache 錯誤日誌中新增“my_session”cookie 值。我新增了一個訪問日誌“LogFormat”,如下所示:

<IfModule mod_ssl.c>

    <VirtualHost *:443>

        LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" [%{my_session}C : %{UNIQUE_ID}e]" detailed
        CustomLog ${APACHE_LOG_DIR}/ssl.www.example.com_access.log detailed

        ErrorLogFormat "[%t] [%l] [pid %P] [%{UNIQUE_ID}e] [client %a] %M"
        ErrorLog ${APACHE_LOG_DIR}/ssl.www.example.com_error.log

    </VirtualHost>

</IfModule>

但是,當我在「ErrorLogFormat」中新增相同的格式時,就會遇到無法辨識的錯誤日誌格式指令 %C 的錯誤:

ErrorLogFormat "[%t] [%l] [pid %P] [%{my_session}C : %{UNIQUE_ID}e] [client %a] %M"

我使用“mod_unique_id”來獲取唯一的請求 ID。

我的要求只是在 Apache 錯誤日誌中新增 SessionId 值/Cookie 值。

答案1

因此,取決於您要記錄的 Cookie 是在請求還是回應石南中,您只需使用%{header_name}i或者%{header_name}o分別。

答案2

這是我現在正在使用的 httpd.conf 檔案的摘錄。

LogFormat "%r \"%{Cookie}i\"" combined

相關內容