Eu recomendaria o logrotate para a maioria das pessoas, já que é isso que vai rodar todos os outros logs (KISS: Keep it Simple Stupid). O Logrotate não reinicia todo o Apache, apenas envia um sinal que diz para reabrir todos os seus arquivos de log e reiniciar os filhos. Esse sinal pode ser SIGHUP, o que faz com que os filhos sejam reiniciados imediatamente (o que interromperá os downloads) ou o SIGUSR1, que faz uma reinicialização normal. Com o SIGUSR1, você precisa atrasar o processamento do registro até achar que todas as crianças teriam morrido naturalmente. De qualquer forma, você provavelmente deseja analisar seus registros e programá-los para o período de tráfego mais baixo do dia ou da semana.
Troncos canalizados parecem ser a solução mais poderosa. Uma grande vantagem é que ele permitirá que você use um sistema de registro centralizado e leve o próprio servidor web. O manual em si diz:
As with conditional logging, piped logs are a very powerful tool, but they should not be used where a simpler solution like off-line post-processing is available.
Portanto, aparentemente, não use o log piped se você não precisar . Eu usei o log canalizado no passado como uma maneira hacky de filtrar logs e não tive nenhum problema.