Usando arquivos de log Apache separados para multisite

Um tempo atrás eu deixei o Blogger e baixei meus blogs para o meu sistema. Eu os hospedei lá com cada blog individual como um VirtualHost por um tempo. Mais tarde, eu os importei para o WordPress e estou hospedando-os no WP agora.

Quando eu estava hospedando-os localmente como hosts virtuais, eu tinha cada um usando um arquivo de log Apache separado, mas agora todos os blogs são registrados no mesmo arquivo.

Não consigo encontrar uma configuração no WordPress, e não há como especificá-la em um arquivo .htaccess uma vez que os sites são virtuais. Ou seja, os blogs do WordPress não estão realmente localizados na unidade como diretórios separados – (além disso, as configurações de log não podem ser usadas em .htaccess qualquer maneira).

Como uma multi-instalação do WordPress pode ser configurada para que um ou mais sites façam logon em seu próprio arquivo de log?

A segunda sugestão do toscho de usar SetEnvIf é promissora. Consegui levá-lo a colocar o access a um site em um arquivo de log separado e mantê-lo fora do log principal usando as diretrizes abaixo.

 …  … # I'm re-using the dontlog environment variable because there is no reason to make a special variable (for me), so it avoids having to use an expression (plus, it just makes sense) SetEnvIf Request_URI "^/blogs" dontlog SetEnvIf Request_URI "^/blogs/blog1" blog1 SetEnvIf Request_URI "^/blogs/foobar" foobar … CustomLog "../Logs/Main/access.log" common env=!dontlog CustomLog "../Logs/Blogs/blog1.log" common env=blog1 CustomLog "../Logs/Blogs/foobar.log" common env=foobar … UnsetEnv dontlog UnsetEnv blog1 UnsetEnv foobar  … 

Isso funciona para um blog de site único, mas para multisite, o problema é tentar manter as coisas organizadas e simplificar a adição de novos blogs porque parece que não é possível usar variables ​​nos nomes de arquivos de log da seguinte forma, o que significa fazer uma input separada para todos e cada um:

 …  … SetEnvIf Request_URI "^/blogs" dontlog # Set environment variable to matched regex subexpression corresponding to blog name SetEnvIf Request_URI "^/blogs(.+/)" blog=$1 … CustomLog "../Logs/Main/access.log" common env=!dontlog CustomLog "../Logs/Blogs/%{blog}e.log" common env=blog … UnsetEnv dontlog UnsetEnv blog  … 

Eu termino com um registro contendo todo o access ao blog em um arquivo chamado %{blog}e.log .

Solutions Collecting From Web of "Usando arquivos de log Apache separados para multisite"

Você pode configurar logs personalizados em seu httpd-vhosts.conf dependendo da variável HTTP_HOST – se o seu servidor for um Apache e você usa subdomínios para cada site.

Para subdiretórios ( não testados ):

 SetEnvIf Request_URI ^sitename1 sitename1 SetEnvIf Request_URI ^sitename2 sitename2 CustomLog sitename1.log common env=sitename1 CustomLog sitename2.log common env=sitename2