可以在apache的httpd.conf配置文件中配置apache自帶的程序rotatelogs的功能。
rotatelogs是一個配合Apache管道日志功能使用的簡單程序,
參考資料:http://httpd.apache.org/docs/current/mod/mod_log_config.html
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
文件大小滾動,而不是按照時間或時差滾動。 -
在 Windows 下的設置例子如下:
# 限制錯誤日志文件為 1M
ErrorLog "|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 1M"
# 每天生成一個錯誤日志文件
#ErrorLog "|bin/rotatelogs.exe logs/error-%Y-%m-%d.log 86400"
# 限制訪問日志文件為 1M
CustomLog "|bin/rotatelogs.exe -l logs/access-%Y-%m-%d.log 1M" common
# 每天生成一個訪問日志文件
#CustomLog "|bin/rotatelogs.exe logs/access-%Y-%m-%d.log 86400" common