其实Windows下Apache自带一个切割日志的 EXE程序 rotatelogs.exe,只要加入到日志位置就会自动切割。防止因为日志文件过大而影响到apache的效率。
Windows下非虚拟主机的Apache日志切割:
打开Apache的配置文件:httpd.conf。查找CustomLog见以下截图:
CustomLog "logs/access.log" common 改为: CustomLog "|bin/rotatelogs.exe -l logs/access-%Y-%m-%d.log 86400" common
这样就每天生成一个访问日志文件!
错误日志同理如下:
ErrorLog "logs/error.log" // 改为每个月生成一个错误日志 ErrorLog "|bin/rotatelogs.exe -l logs/error-%Y-%m.log 86400" // 改为每天生成一个错误日志 ErrorLog "|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 86400"
一般每月一个错误日志就可以。除非网站错误很多,那就要考虑用每天生成。
Windows下虚拟主机的日志切割:
如果一台服务器上有多个虚拟主机那么就需要在虚拟主机 VirtualHost 中添加。添加的具体方法和第一条一致:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot "D:/www" ServerName localhost ErrorLog "logs/localhost-error.log" CustomLog "logs/localhost-access.log" common </VirtualHost>直接修改为:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot "D:/www" ServerName localhost ErrorLog "|bin/rotatelogs.exe -l logs/localhost-error-%Y-%m.log 86400" CustomLog "|bin/rotatelogs.exe -l logs/localhost-access-%Y-%m-%d.log 86400" common </VirtualHost>
这样虚拟主机的日志也可以定时切割了