No OS X, /var/log/system.log é rotacionado pelo comando newsyslog
, que é executado a meia hora a cada hora (veja /System/Library/LaunchDaemons/com.apple.newsyslog.plist) sempre que o Mac estiver funcionando e acordado. As regras de rotação estão em /etc/newsyslog.conf, a partir das quais as linhas relevantes são:
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
/var/log/system.log 640 7 * @T00 J
Se eu entendi isso corretamente (consulte o Página man do newsyslog.conf ), o "@ T00" no campo "when" significa que o log será rotacionado se o newsyslog for executado entre meia-noite e 1h - ou seja, às 12h30. Mas se o Mac estiver desligado ou adormecido às 12h30, essa corrida não acontecerá e o registro não será rotacionado naquele dia, o que provavelmente explica por que você vê resultados tão variáveis.
Se você quiser alterar os critérios de rotação, sinta-se à vontade para editar /etc/newsyslog.conf; a maioria dos outros logs são rotacionados com base no tamanho e não sei por que o system.log é diferente.
UPDATE: Iniciando em 10.9, o controle de rotação para system.log foi movido de /etc/newsyslog.conf para /etc/asl.conf (a configuração para o recurso Apple System Log, que faz a gravação para system.log) . Vai ter uma seção como esta:
# Rules for /var/log/system.log
> system.log mode=0640 format=bsd rotate=seq compress file_max=5M all_max=50M
? [= Sender kernel] file system.log
? [<= Level notice] file system.log
? [= Facility auth] [<= Level info] file system.log
? [= Facility authpriv] [<= Level info] file system.log
A seção "rotate = seq compress file_max = 5M all_max = 50M" controla o arquivamento e a retenção. Veja man asl.conf para mais informações e opções.
O sistema de registro tem uma reescrita bem completa no 10.12, mas isso não parece ter mudado.