Unter OS X wird /var/log/system.log durch den newsyslog
Befehl gedreht, der jede halbe Stunde ausgeführt wird (siehe /System/Library/LaunchDaemons/com.apple.newsyslog.plist), wenn der Mac ausgeführt wird und Erwachen. Die Rotationsregeln befinden sich in /etc/newsyslog.conf. Die entsprechenden Zeilen lauten:
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
/var/log/system.log 640 7 * @T00 J
Wenn ich dieses Recht verstehe (siehe die Manpage newsyslog.conf ), bedeutet das "@ T00" im Feld "wann", dass das Protokoll gedreht wird, wenn newsyslog zwischen Mitternacht und 1 Uhr morgens ausgeführt wird - dh um 12:30 Uhr. Wenn der Mac jedoch um 12:30 Uhr ausgeschaltet ist oder schläft, wird dieser Lauf nicht ausgeführt und das Protokoll wird an diesem Tag nicht gedreht, weshalb Sie wahrscheinlich solche variablen Ergebnisse sehen.
Wenn Sie die Rotationskriterien ändern möchten, können Sie /etc/newsyslog.conf bearbeiten. Die meisten anderen Protokolle werden je nach Größe gedreht, und ich bin mir nicht sicher, warum system.log anders ist.
UPDATE: Ab 10.9 wurde die Rotationssteuerung für system.log von /etc/newsyslog.conf nach /etc/asl.conf verschoben (die Konfiguration für die Apple System Log-Funktion, die das Schreiben in system.log übernimmt). Es wird einen Abschnitt wie diesen geben:
# 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
Der Abschnitt "rotate = seq compress file_max = 5M all_max = 50M" steuert die Archivierung und Aufbewahrung. Weitere Informationen und Optionen finden Sie unter man asl.conf .
Das Protokollierungssystem wurde in 10.12 ziemlich gründlich umgeschrieben, aber dies scheint sich nicht geändert zu haben.