Arquivo de log diferente do Apache para cada subdomínio?

2

É possível configurar o Apache para usar um arquivo de log diferente para cada subdomínio , mesmo se todos os subdomínios estiverem dentro do mesmo contêiner VirtualHost?

Então, eu tenho apenas um VirtualHost:

<VirtualHost *:80>
  ServerName example.com
  ServerAlias test1.example.com test2.example.com test3.example.com
</VirtualHost>

E eu quero acabar com os seguintes arquivos de log:

/var/log/httpd-access_test1.log
/var/log/httpd-access_test2.log
/var/log/httpd-access_test3.log

Eu sei que provavelmente posso fazer isso com um formato de log personalizado e logs divididos, mas eu queria saber se há uma maneira de fazer o Apache fazer isso por mim.

    
por Keith Palmer Jr. 24.03.2010 / 16:42

2 respostas

3

Você apenas especifica ErrorLog e CustomLog dentro de cada diretiva VirtualHost . Com isso em mente, você não seria capaz de usar ServerAlias e ter arquivos de log separados para cada host por meio do desempenho normal sem especificar VirtualHost separada.

No entanto, você pode enviar o log por meio de um script e fazer com que o script crie os arquivos separados. Olhe para a documentação do log canalizado.

Você também pode usar um script de pós-processamento, como a utilização de grep para analisar os logs. Um script de pós-processamento pode ser especificado no logrotate noturno nas seções postrotate ou preprotate .

Apache 2.2 Piped Logging

    
por 24.03.2010 / 16:49
1

Você deve ser capaz de usar variáveis de ambiente do apache para fazer isso funcionar:

LogFormat "%h \"%r\" %>s \"%{Referer}i\" \"%{User-Agent}i\"" vhostformat

SetEnvIfNoCase Host example\.com mainlog
CustomLog /var/log/httpd-example.log vhostformat env=mainlog

SetEnvIfNoCase Host test1\.example\.com vhost1log
CustomLog /var/log/httpd-access_test1.log vhostformat env=vhost1log

SetEnvIfNoCase Host test2\.example\.com vhost2log
CustomLog /var/log/httpd-access_test2.log vhostformat env=vhost2log

SetEnvIfNoCase Host test3\.example\.com vhost3log
CustomLog /var/log/httpd-access_test3.log vhostformat env=vhost3log
    
por 08.07.2010 / 23:49