Apache访问日志可以保持分离,也可以结合起来吗?

我的问题可能有点混乱,对此感到遗憾。 这是我需要的:

那么,我有(假设)3个网站托pipe在一个Apache(这是在每个VirtualHost设置里面定义的,然后我目前单独login他们的访问日志,如下所示:

  • /var/log/httpd/website-a.com.access_log
  • /var/log/httpd/website-b.com.access_log
  • /var/log/httpd/website-c.com.access_log

所以一切都好。 但同时 ,我还希望他们(所有的访问日志)在Apache的默认本地主机日志文件(我不知道如何调用那个) 。 也许:

  • / var / log / httpd / access_log (我想这是默认的)

换句话说,有没有办法(如何)将访问日志保持在分离的状态,同时又保留在同一个组合文件中呢?


所以这将允许我看到每个访问日志在他们分开的文件。 与此同时,如果我需要,我还可以在一个地方看到所有的日志。

这可以做到。 而不是在每个VirtualHost节中创build一个CustomLog条目,而是使用全局configurationhttpd.conf中的SetEnvIfNoCase设置一个variables,如果该域匹配,然后将该variables启用条目logging到文件中。

例如

 SetEnvIfNoCase Host website-a.com weba SetEnvIfNoCase Host website-b.com webb SetEnvIfNoCase Host website-c.com webc CustomLog /var/log/httpd/website-a.com.access_log combined env=weba 

等等。 当然,你必须考虑到你的域名的变化,如果需要的话,可能使用正则expression式,如果你需要更具体的子域。

您可能需要转义域名中的点。