Wie deaktiviere ich die Protokollierung in system.log in OS X?

Während meiner Zeit bei Yosemite hatte ich ein harmloses Problem, das ununterbrochen protokolliert wird system.log.

Bei dieser Frage geht es nicht um die Lösung des Problems.

Ich möchte das Geschwätz beenden, weil sie auf das Laufwerk schreiben, das eine SSD ist, und ohne sie auskommen könnten.

Wie kann ich das Schreiben in das Protokoll stumm schalten oder verhindern?

Die Meldungen kommen aus dem Kernel und sind schuld IO80211ScanManager. Beispiel:
Nov 19 02:04:46 Louis-MBP kernel[0]: IO80211ScanManager::startScan: pid 29 had pending scan request. Deleting.

Sie dominieren das Protokoll, dessen 4000 neuste Meldungen in der Regel etwa einen Tag umfassen.

Antworten (2)

Die Protokollierung in system.log wird von der Datei /etc/asl.conf gesteuert. Standardmäßig werden alle Kernel-Meldungen an system.log gesendet. Wenn Sie eine Einschränkung der Prioritätsebene hinzufügen, werden die trivialen Systembeschwerden nicht protokolliert.

Bearbeiten Sie die Datei /etc/asl.conf und finden Sie eine Zeile, die so aussieht

? [= Sender kernel] file system.log

und ändern Sie es in

? [= Sender kernel] [<= Level error] file system.log

Senden Sie ein HUP-Signal an den syslogdProzess (oder starten Sie einfach Ihr System neu) und das Protokollierungsverhalten wird geändert. Verwenden Sie pgrepfrom Terminal, um die Prozess-ID für syslogd zu finden. Z.B

$ pgrep syslogd
21
$

Senden Sie dann mit dem killProgramm ein HUP-Signal an diese Prozess-ID.

$ sudo kill -HUP 21
$
Ihre Vertrautheit mit diesem System ist ermutigend. Auf den ersten Blick kann es sein, dass ich die Nachrichten immer noch erhalte . Obwohl es leise ist, während ich tippe. Ich werde asl.confjetzt auf die Dokumente verweisen. Danke für den Vorschlag! Übrigens, was ist ein HUP-Signal? Würden Sie bitte in Betracht ziehen, daraus einen Hyperlink zu machen?
Funktioniert nicht ... werde morgen versuchen, die Dringlichkeitsschwelle nach oben zu verschieben, beginnend mit critical, gefolgt von alert, und schließlich, emergencywenn die alc.conf-Manpage sie so anordnet.
@Louis Auf diesen Ebenen gehen andere wichtige Nachrichten verloren - es wäre besser, mehr als die Priorität herauszufiltern, z. B. die Zeichenfolge IO80211ScanManager::startScan
@Mark Danke, ich werde nachsehen, wie man so etwas fängt. Im Moment ändere ich es wieder auf Warnung. Aber ich habe jetzt eine allgemeine Vorstellung davon, wie ich mit der Kontrolle der Protokolle beginnen kann. Es stellte sich heraus, dass der IO80211ScanManager auch im wifi.log angezeigt wurde, also habe ich vorerst nur bearbeitet ? [<= Level notice] store, um zu sagen ? [<= Level warning] store. Ich verstehe, dass ich verschiedene Benachrichtigungen nicht erhalte, so weit, so gut!
Wie kann man all dies in seinen ursprünglichen Zustand zurückversetzen?

Löschen Sie das Systemprotokoll mit dem Befehl

sudo rm /System/Library/LaunchDaemons/com.apple.syslogd.plist

macOS ist dasselbe wie iOS. Welcher Dienst auch immer ausgeführt wird, wird in einer plist gespeichert, um den Befehl zum Ausführen eines Skripts zu geben. Wenn Sie also einen Dienst in iOS deaktivieren oder entfernen können, können Sie dies auch in macOS tun.

Dadurch wird nur der Systemprotokolldienst gelöscht, der beim Booten ausgeführt wird, sonst nichts. Sie können die Protokollierung manuell ausführen, wenn Sie die Konsole öffnen.