2013-01-22 104 views
0

當我沒有在我的conf文件的虛擬主機部分指定日誌文件時,日誌被寫入httpd.conf(= access_log)中指定的文件中, 。 甲日誌條目看起來像這樣:Apache Web服務器日誌記錄 - 自定義日誌文件與常規日誌文件

SOMEIP - - [22/JAN/2013:18:34:08 0100] 「GET/HTTP/1.1」 200 1752 「 - 」「的Mozilla/5.0 (Windows NT 6.1; WOW64)AppleWebKit/537.17(KHTML,像壁虎)Chrome/SOMEIP Safari/537.17「012/homepage_bg.png HTTP/1.1" 304 - 「HTTP:// DOMAIN /」「的Mozilla/5.0(Windows NT的6.1; WOW64)爲AppleWebKit/537.17(KHTML,例如Gecko)C $

但是,當我定義一個日誌文件在虛擬主機部分,新的日誌文件包含不同的信息mation:

SOMEIP - - [22/JAN/2013:18:33:34 0100] 「GET/HTTP/1.1」 200 1752

SOMEIP - - [22/JAN/2013:18 :33:34 0100] 「GET /img/homepage_bg.png HTTP/1.1」 304 -

我定義日誌文件是這樣的:

的CustomLog日誌/ DOMAIN-的access_log共同

爲什麼自定義日誌包含的信息少於默認情況下所有虛擬主機都登錄的常規日誌?

+1

檢查您的主日誌格式與您在此指定的常見日誌格式。以下是關於如何配置日誌格式的Apache指南:http://httpd.apache.org/docs/2.2/mod/mod_log_config.html –

回答

0

您需要使用包含用戶代理的日誌格式定義別名「common」。

的LogFormat 「%H%L%U%T \」 %r \」%> S%B 「%{用戶代理}我」 共同

0

你沒有說是什麼味道的Linux的你」重新使用任何適當配置的Apache(例如基於Debian的Ubuntu,Mint等)已經有一個配件LogFormat,它們的配置中包含用戶代理,查找與LogFormat匹配的所有行。像這樣:

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined 
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
LogFormat "%h %l %u %t \"%r\" %>s %b" common 
LogFormat "%{Referer}i -> %U" referer 
LogFormat "%{User-agent}i" agent 

只需使用combined甚至vhost_combined參數爲你的日誌文件:

CustomLog logs/DOMAIN-access_log combined 

您還應該查看Custom Log Formats的文檔。

+0

哪些文件應該找到LogFormats?我有一個domain.conf文件,我定義了虛擬主機。我是否必須在此文件或其他文件中定義LogFormat?我正在使用cent-os。 – matthias

相關問題