我想我的问题的解决scheme,我有一个Apache服务器上的数百个域。 我不希望每个域都有一个单独的日志文件,我希望它们共享一个日志文件。 这很容易,如果我不需要旋转它们。 比如我可以使用
CustomLog "/var/log/apache2/access_log" "%h %v %l %u %t \"%r\" %>s %b" ErrorLog "/var/log/apache2/error_log"
这工作正常,但我用这个,并注意到我的日志文件是6GB 。 所以我想用Apache程序rotatelogs来轮换日志文件。 所以我试图在我的一个虚拟主机上添加一些旋转。
CustomLog '|/usr/sbin/rotatelogs "/var/log/apache2/access_log" 604800 0' "%h %v %l %u %t \"%r\" %>s %b"
问题是它在access_log后添加了一些数字,所以其他域不会像旋转的那样写入相同的文件。 有没有办法让所有的域写入同一个文件,并让文件旋转? 如果我把日志旋转到所有的虚拟主机将它使用相同的文件或将每个域覆盖文件? 我应该如何处理6GB的access_log?
最后的答案是…
使用全局日志logging而不是每个虚拟主机日志logging。 我注释掉了所有的虚拟主机的自定义日志和错误日志,然后在我添加的httpd.conf中
CustomLog '|/usr/sbin/rotatelogs "/var/log/apache2/access_log.%Y-%m-%d" 604800 0' "%h %v %l %u %t \"%r\" %>s %b" ErrorLog '|/usr/sbin/rotatelogs "/var/log/apache2/error_log.%Y-%m-%d" 604800 0'
这个伎俩