2011-12-05 155 views
0

我有Ubuntu 10.04.1运行LAMP。我有Apache的日志记录设置,以及日志旋转。Apache在日志旋转时停止日志记录

Apache启动时,它会正确记录所有内容(访问,错误,other_vhosts_access和ssl_access)。但是,当日志旋转时,它会停止日志记录。

我不知道该从哪里出发。帮帮我!

# logrotate.conf (removing comments): 
daily 
rotate 4 
compress 
compresscmd /bin/bzip2 
compressext .bz2 
include /etc/logrotate.d 
/var/log/wtmp { 
    missingok 
    monthly 
    create 0664 root utmp 
    rotate 1 
} 
/var/log/btmp { 
    missingok 
    monthly 
    create 0660 root utmp 
    rotate 1 
} 

##logrotate.d/apache2 (removing comments): 
/var/log/apache2/*.log { 
dateext 
create 640 root adm 
sharedscripts 
daily 
compress 
compresscmd /bin/bzip2 
compressoptions -k 
postrotate 
    echo "-- `date` --" >> move_log.txt 
    mv <path>/access.log-*.bz2 <path> 
    mv <path>/ssl_access.log-*.bz2 <path> 
endscript 
} 

回答

1

您必须在移除其日志文件后重新启动Apache。这将迫使它关闭它在旧日志文件上的文件句柄,并打开新的句柄(并创建新的日志文件)。一个简单的service apache reload应该这样做(基本归结为kill -HUP)。

为了安全起见,您应该移动日志文件,然后重新启动apache,然后压缩旧的文件。这将防止Apache在后处理旧日志文件时附加到旧日志文件。