Apache伺服器日誌提供有助於偵測伺服器常見問題的詳細資訊。若要記錄網站的存取日誌,必須啟用mod_log_configmodule。
apache設定檔中有三個指令,分別是 -
TransferLog:建立日誌檔案。 ( 建議學習:Apache伺服器 )
LogFormat:指定自訂格式。
CustomLog:建立和格式化日誌檔案。
TransferLog指令在apache設定檔中可用,它會根據設定參數輪換虛擬主機日誌檔。
VirtualHost www.example.com><br/><br/> ServerAdmin webmaster@yiibai.com<br/> DocumentRoot /usr/www/example/httpd/htdocs/<br/> ServerName www.example.com<br/> ServerAlias example.com www.example<br/> ErrorLog /usr/www/example/httpd/logs/error_log<br/> TransferLog /usr/www/example/httpd/logs/accesslog<br/> CustomLog /usr/www/example/httpd/logs/accesslog combined<br/><br/></VirtualHost><br/>
兩種類型的Apache日誌格式
#通用日誌格式
組合日誌格式
可以透過編輯apache設定檔來啟用它們,即apache2.conf(Debian/ubuntu)或httpd.conf(基於rpm的系統)檔案。
通用日誌格式
LogFormat "%h %l %u %t \"%r\" %>s %b" common<br/>CustomLog logs/access_log.log common<br/>
Apache產生的通用日誌內容範例如下
[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test<br/>
組合日誌格式
#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined<br/>CustomLog log/access_log.log combined<br/>
在上面格式中,
%h是遠端主機
#%l是由identd確定的用戶的身份
%u是HTTP身份驗證確定的用戶名
%t是伺服器處理完請求的時間。
%r是來自客戶端的請求行(“GET/HTTP/1.0”)。
%> s是從伺服器傳送到客戶端的狀態代碼(500,404等)
%b是客戶端回應的大小(以位元組為單位)Referer是連結到此URL的頁面。
用戶代理程式是瀏覽器識別字串。
Apache產生的組合日誌:
199.180.11.91 - - [06/Mar/2019:04:22:58 +0100] "GET /robots.txt HTTP/1.1" 404 1228 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"<br/>
自訂日誌為伺服器上的每個虛擬主機建立單獨的日誌檔案。它需要在設定檔的虛擬主機部分中指定。
可以看到下面提到的虛擬主機配置,產生的日誌將為該虛擬主機自訂,並且將組合格式。
以上是Apache伺服器要記錄日誌怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!