Apache-Httpd

Apache 2.4 以微秒為單位獲取請求處理時間日誌

  • January 17, 2019

試圖將 %D 和 %T 格式字元串添加到我的 Apache 日誌以查看請求處理的時間,但顯然無法。這是LogFormat我的指令httpd.conf

[root@server01 admin_ad2]# grep LogFormat /etc/httpd/conf/httpd.conf
   LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
   LogFormat "%h %l %u %t \"%r\" %>s %b" common
     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
[root@server01 admin_ad2]# httpd -v
Server version: Apache/2.4.6 (Red Hat Enterprise Linux)
Server built:   May 28 2018 16:19:32

添加如下所示的格式字元串 a 並重新啟動 Apache 服務沒有任何影響 - 仍然看不到我的值/var/log/httpd/ssl_access_log

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" **%T/%D**" combined

我究竟做錯了什麼 ?

Apache HTTP 伺服器的 RHEL 版本在單獨的配置文件中定義 SSL 配置,該文件位於/etc/httpd/conf.d/ssl.conf.

此配置文件還使用TransferLog指令定義 SSL 虛擬主機的日誌文件:

# Use separate log files for the SSL virtual host; note that LogLevel
# is not inherited from httpd.conf.
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

TransferLog 指令使用最新的LogFormat指令定義的日誌格式,該指令沒有暱稱。因此,可以通過在 TransferLog 指令之前定義格式來控制格式:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" **%T/%D**"
TransferLog /var/log/httpd/ssl_access_log

引用自:https://unix.stackexchange.com/questions/494905