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.
system.log
innewsyslog.conf
oder innewsyslog.d
.rotate=NAME_STYLE
,compress
unddest=PATH
Optionen in der asl.conf Datei. Siehe den Abschnitt "DATEI-DREHUNG" auf der Manpage . Im Fall von system.logrotate=seq compress
bedeutet dies, dass sie als /var/log/system.log.0.gz, ... / system.log.1.gz usw. gespeichert werden, wenn sie insgesamt 50 MB erreichen ( derall_max
Parameter), der älteste wird gelöscht.