一次偶然测试发现移动了apache下的access_log日志后或者修改了access_log的名称,该移动的日志或修更名称的日志文件仍记录了apache访问信息,即没有实时生效,后来查了资料才知道:移动或者删除日志文件之后,必须从新启动服务器才能让它打开新的日志文件。apache
即便一个并不繁忙的服务器,其日志文件的信息量也会很大,通常每10000个请求,访问日志就会增长1MB或更多。这就有必要按期滚动日志文件。因为Apache会保持日志文件的打开,并持续写入信息,所以服务器运行期间不能执行滚动操做。移动或者删除日志文件之后,必须从新启动服务器才能让它打开新的日志文件。服务器
用优雅的(graceful)方法从新启动,能够使服务器启用新的日志文件,而不丢失原来还没有写入的信息。为此,有必要等待一段时间,让服务器完成正在处理的请求,并将记录写入到原来的日志文件。如下是一个典型的日志滚动和为节省存储空间而压缩旧日志的例子:测试
mv access_log access_log.old
mv error_log error_log.old
apachectl graceful
sleep 600
gzip access_log.old error_log.old 日志