apache 訪問日誌如何設定每日新增一個日誌檔案、如何限制大小、設定記錄內容

harbor1981發表於2016-03-23

可以在apache的httpd.conf配置檔案中配置apache自帶的程式rotatelogs的功能。

rotatelogs是一個配合Apache管道日誌功能使用的簡單程式,

參考資料:http://httpd.apache.org/docs/current/mod/mod_log_config.html

https://www.howtoforge.com/setenvif_apache2/

1 每天生成新日誌

CustomLog "|/usr/sbin/rotatelogs  /etc/httpd/logs/access_log_%Y-%m-%d  86400 480" combined

2  日誌超過一定大小生成新日誌

CustomLog "|/usr/sbin/rotatelogs  /etc/httpd/logs/access_log_%Y-%m-%d  5M" combined

3 rotatelogs語法

rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizeM ]

logfile
它加上基準名就是日誌檔名。如果logfile中包含"%",則它會被視為用於strftime()的格式字串;否則它會被自動加上以秒為單位的".nnnnnnnnnn"字尾。這兩種格式都表示新的日誌開始使用的時間。
rotationtime
日誌檔案滾動的以秒為單位的間隔時間。
offset
相對於UTC的時差的分鐘數。如果省略,則假定為"0"並使用UTC時間。比如,要指定UTC時差為"-5小時"的地區的當地時間,則此引數應為"-300"。
filesizeM
指定以filesizeM檔案大小滾動,而不是按照時間或時差滾動。

4、設定只記錄htm、html、php的訪問記錄

apache下兩種方式:
1.只記錄html,htm,php等檔案
SetEnvIfNoCase Request_URI "(\.htm|\/|\.html|\.php)$" htm
CustomLog logs/9enjoy.com-access_log combined env=htm

2.排除法:
<FilesMatch “\.(ico|gif|jpg|png|bmp|swf|js|css)”>
SetEnv IMAGE 1
</FilesMatch>
CustomLog logs/9enjoy.com-access_log combined env=!IMAGE


推薦一篇比較全的文章:

http://wenku.baidu.com/link?url=gVPt1ga1H7w7AZ4hXwA97h36B5_yF6V3fB2KSm0zSS-2yuZTDpdYFPiiUbxhD6TP3CVNAnxL9yEGh7-E6I7pYTyY1-iT3rZgOrraJvpk9m7

相關文章