A. 使用 cronolog 為每一天建立一個新的日志
從http://cronolog.org/download/ 可以下載 cronolog 程序,把下載到的 cronolog 程序并放到Apache的bin (也即C:/Program Files/Zend/Apache2/bin) 目錄下(詳細參數參見:http://cronolog.org/usage.html)
主配置文件中的使用方法
ErrorLog "|bin/cronolog logs/error_%Y%m%d.log"
CustomLog "|bin/cronolog logs/access_%Y%m%d.log" combined
虛擬主機配置文件中的使用方法
ServerAdmin webmaster@localhost
DocumentRoot "E:/htdocs"
ServerName localhost
ErrorLog "|bin/cronolog logs/localhost/error_%Y%m%d.log"
CustomLog "|bin/cronolog logs/localhost/access_%Y%m%d.log" combined
B. 使用 rotatelogs 每隔一天記錄一個日志
rotatelogs 是 Apache 2.2 中自帶的管道日志程序,參數如下(參見:http://lamp.linux.gov.cn/Apache/ApacheMenu/programs/rotatelogs.html)
語法
rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizeM ]
選項
-l
使用本地時間代替GMT時間作為時間基準。注意:在一個改變GMT偏移量(比如夏令時)的環境中使用-l會導致不可預料的結果。
logfile
它加上基準名就是日志文件名。如果logfile中包含”%”,則它會被視為用于strftime()的格式字符串;否則它會被自動加上以秒為單位的”.nnnnnnnnnn”后綴。這兩種格式都表示新的日志開始使用的時間。
rotationtime
日志文件滾動的以秒為單位的間隔時間。
offset
相對于UTC的時差的分鐘數。如果省略,則假定為”0″并使用UTC時間。比如,要指定UTC時差為”-5小時”的地區的當地時間,則此參數應為”-300″。
filesizeM
指定以filesizeM文件大小滾動,而不是按照時間或時差滾動。
主配置文件中的使用方法
ErrorLog "|bin/rotatelogs -l logs/error_%Y%m%d.log 86400"
CustomLog "|bin/rotatelogs -l logs/access_%Y%m%d.log 86400" combined
虛擬主機配置文件中的使用方法
ServerAdmin webmaster@localhost
DocumentRoot "D:/www"
ServerName localhost
ErrorLog "|bin/rotatelogs -l logs/localhost/error_%Y%m%d.log 86400"
CustomLog "|bin/rotatelogs -l logs/localhost/access_%Y%m%d.log 86400" combined
PS1:這兩個管道日志文件程序還有一點不同之處是使用 cronolog 時如果日志是放在某個不存在的路徑則會自動創建目錄,而使用 rotatelogs 時不能自動創建,這一點要特別注意。
PS2:有關 Apache 日志文件的更多信息請參見:
新聞熱點
疑難解答