Eu escrevi um programa simples, datelog, para dividir logs comuns com base na data do logon, em oposição à hora atual do sistema quando a linha de log é vista pelo programa. Isso pode ou não ser exatamente o que o cronolog ou outro divisor de logs já faz, mas foi mais rápido escrever o meu próprio do que descobrir o que os outros fazem.
Usando o ano e o mês na solicitação registrada, a linha é gravada em um arquivo ou canal que inclui o AAAAMM computado a partir dos dados registrados. Sim, isso é um pouco específico para o formato de log comum. O primeiro [supõe-se que delimite a data. Cuidado com os endereços IPv6. :)
Para análise de log, é importante que cada log realmente contenha apenas as solicitações para cada mês respectivo, e cada log deve estar idealmente completo para resultados corretos da análise. Não é suficiente determinar o nome do arquivo com base no horário atual no divisor de logs, porque uma solicitação lenta iniciando às 23:59:59 acabará no arquivo de log no mês errado.
Eu uso isso com o nginx por meio de um fifo nomeado, que é verificado para existir antes do nginx ser iniciado. Observe que existe uma troca no programa entre a detecção de erros e a saída em buffer, em que o datelog atualmente prefere a saída em buffer por razões de desempenho, portanto, verifique se a sua configuração realmente funciona, especialmente ao usar pipes de shell, para não perder nenhum dado de log .
Código fonte: http://stuge.se/datelog.c
Por favor, sinta-se livre para me enviar qualquer feedback e, claro, patches!