Na minha experiência, o logrotate é ótimo. É muito flexível e funciona bem com a maioria dos softwares.
No entanto, existem alguns problemas com ele, e como o cronolog é basicamente um recurso de rotação de logs da web, vou escrever minha experiência com o logrotate + apache, que era problemático:
Ao girar logs, devemos notificar o apache que um log está sendo rotacionado, pois mesmo que o logrotate renomeie access.log para access.log.1, o apache continuará gravando no access.log.1, já que ele está gravando no apache. inode, e renomear o arquivo não afeta o número do inode.
No debian etch (e provavelmente em muitas outras distribuições), o logrotate está sendo usado para girar os logs do apache. Agora, o apache tem um reinício gradual que avisa os processos-filhos do apache para sair assim que terminarem de exibir conexões, apache, em seguida, relê sua configuração, gera novos processos filho, que começam a gravar em um novo arquivo de log (no caso do anterior foi girado).
Isso soa como uma ótima solução, porém o reinício normal nem sempre funciona em certas condições (como carga pesada), então os desenvolvedores debian decidiram usar uma reinicialização do apache em vez de uma reinicialização normal, na configuração do logrotate do apache. Infelizmente isso faz com que todas as conexões sejam descartadas de uma só vez, o que é muito ruim para sites muito carregados. Além disso, o reinício do apache também pode causar problemas como parar e não iniciar o apache (também em certas situações de carga), veja os links abaixo para maiores detalhes.
O resultado é que logrotate é ótimo, mas pode levar a certos problemas para certos programas. Eu não tenho muita experiência com o cronolog, mas como ele grava logs através de um pipe, ele não requer nenhum recarregamento do apache quando ele está girando os arquivos de log, o que basicamente resolve tudo o que é descrito acima.
Erros relacionados do logrotate / apache debian: