Veja o link
If CustomLog or ErrorLog directives are placed inside a section, all requests or errors for that virtual host will be logged only to the specified file. Any virtual host which does not have logging directives will still have its requests sent to the main server logs.
Em outras palavras, se você colocar diretivas de registro em uma seção do VirtualHost, ele substituirá as diretivas de registro na configuração principal do servidor. Se você deseja logar em um único arquivo de log, remova a configuração de log das seções do VirtualHost.
Por simplicidade, prefiro registrar todos os dados do Access em um único arquivo de log. Posteriormente, você pode processar os logs e dividir os arquivos de log em arquivos de log dos Hosts Virtuais. Além disso, gravar em um único arquivo de log é um uso mais eficiente dos recursos do computador e, em seguida, gravar em 30 arquivos de log de uma só vez. Apenas certifique-se de que seu LogFormat inclui o '% v', que registrará o nome do host virtual.
Is it possible to have ALL accesses and errors duplicated to a shared logfile?
Você pode registrar todos os erros e acesso a um arquivo de log compartilhado, mas o arquivo de log é feio. Primeiro, envie os dados de log do Apache para o syslog e, em seguida, use o syslog para enviar para um arquivo local ou um servidor de log remoto.
# Send access logs to syslog
LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog "|/usr/bin/logger -t httpd -i -p local7.notice" combined
# Send error logs to syslog
ErrorLog syslog:local7
E depois em /etc/syslog.conf
# Send all HTTP log data to this file
local7.* /var/log/http-all.log