access.log,件在 WEB 服務(wù)器運(yùn)行一段時(shí)間之后會(huì)達(dá)到幾十兆甚至上百兆,如果Apache運(yùn)行有錯(cuò)誤,error.log也會(huì)增大到幾十兆,我們知道系統(tǒng)讀寫一個(gè)大的文本文件是非常耗內(nèi)存的,因此限定日志文件大小十分必要。 通常我們是在{$apache}/conf/httpd.conf中設(shè)置Apache的參數(shù),然而我們并沒有發(fā)現(xiàn)可以設(shè)置日志文件大小的配置指令,通過參考http://httpd.apache.org/docs/2.0/programs/rotatelogs.html,可以用apache 自己的程序 rotatelogs.exe(位于 {$apache}/bin/目錄下),來限制日志文件的大小。 Usage: rotatelogs [-l] [offset minutes from UTC] or Add this: TransferLog "|rotatelogs /some/where 86400" or TransferLog "|rotatelogs /some/where 5M" to httpd.conf. The generated name will be /some/where.nnnn where nnnn is the system time at which the log nominally starts (N.B. if using a rotation time, the time will always be a multiple of the rotation time, so you can synchronizecron scripts with it). At the end of each rotation time or when the file size is reached a new log is started. 在 Windows 下的設(shè)置例子如下: # 限制錯(cuò)誤日志文件為 1M ErrorLog "|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 1M" # 每天生成一個(gè)錯(cuò)誤日志文件 #ErrorLog "|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 86400" # 限制訪問日志文件為 1M CustomLog "|bin/rotatelogs.exe -l logs/access-%Y-%m-%d.log 1M" common # 每天生成一個(gè)訪問日志文件 #CustomLog "|bin/rotatelogs.exe -l logs/access-%Y-%m-%d.log 86400" common linux/Unix下 應(yīng)該類似。