Deaktivieren / Festlegen der Protokollierungsstufe / der Einstellungen der PER Mac OS X-Anwendung?

10375
mralexgray

Ich finde meinen Mac syslogd „cosole“ Protokolle unbrauchbar werden, wenn einige schlecht geschriebene app ( PathFinder.app in diesem Fall) unaufhörlich in speit syslogd den ganzen Tag lang .. ich irgendwo gelesen, dass Sie die Protokollierung und PRO App von deaktivieren könnte ..

  1. Erstellen eines Alias zur ausführbaren Bündel innerhalb der App „Paket“, und dann nur das Alias von dem Terminal zu starten. Der Prozess war ... Navigieren Sie zu /Applications/ObnoxiousLogger.app, klicken Sie mit der rechten Maustaste auf "Paketinhalt anzeigen" und dann auf ...

    /Applications/ObnoxiousLogger.app/Contents/MacOS/ObnoxiousLogger

    Dann machen Sie den Alias ​​über die GUI und denken Sie daran, die App immer von diesem Alias ​​aus zu starten, NUR über das Terminal.

    Dies ist ärgerlich, da Sie den Alias ​​über den Finder erstellen MÜSSEN (Symlinking funktioniert nicht und es gibt keine Möglichkeit, einen Alias ​​über das Terminal zu erstellen ). Und wenn es auf andere Weise gestartet wird, sind Sie wieder auf Platz eins, Logorrhoe . Diese Methode hat funktioniert, aber für eine sehr kurze Zeit.

  2. Es scheint, Sie könnten dies über einen launchctl- Befehl oder eine plist-Variable festlegen, aber dies ist keine App, die von launchd geöffnet wird. Die Dokumentation von launchd ist also überall, aber ich denke, das ist eine Möglichkeit, ich annehmen.

  3. Ich habe etwas über das Senden des Protokolls an / dev / null gesehen, aber es war nicht klar, ob dies eine Art syslogd-Pipe oder -Befehl oder eine /etc/syslogd.conf -Einstellung war oder ...

Bitte lassen Sie mich wissen, ob Sie die Protokollierung pro Anwendung selektiv stummschalten können, oder noch besser, die Protokollierungsgenauigkeit, pro Prozess / Befehl usw. in Mac OS X erhöhen oder verringern .

4
Erwägen Sie die Annahme von Antworten auf Ihre Fragen, wenn sie das Problem lösen, indem Sie auf das Kontrollkästchen neben ihnen klicken, oder bearbeiten Sie alternativ Ihre Fragen oder kommentieren Sie die Antworten, warum sie für Sie nicht funktionieren. Daniel Beck vor 13 Jahren 0

4 Antworten auf die Frage

5
Torsten Grust

Möglicherweise möchten Sie nachsehen, asl.conf(5)welche Protokollnachrichten auf einer genau abgestimmten Ebene ignoriert / verarbeitet werden können.

So etwas wie:

? [= Sender ObnoxiousLogger] ignore 

sollte den Trick tun. Wenn Sie immer noch die ernsthafteren Nachrichten des abscheulichen Absenders sehen möchten, können Sie Folgendes beachten:

? [= Sender ObnoxiousLogger] [> Level error] ignore 

könnte angemessener sein.

Hinweis : /etc/asl.confVergessen Sie nach der Bearbeitung nicht, kill -HUPIhr syslogd zu ändern.

Thx für asl.conf. Ein ObnoxiousLogger kann einen noch stärkeren Effekt haben als das "Stehlen der CPU": Verhindern des Systemschlafes, da durch häufiges Schreiben der Festplatte der Sleep-Timer ständig zurückgesetzt wird! Mein Täter ist [Google Chrome] (http://www.google.at/chrome/), sowohl für Mac als auch für Win. Ich hoffe es ist ein unschuldiger Fehler. Es ist jedoch kaum zu glauben: 1) Benutzer ständig online zu haben, ist ein wichtiges Unternehmensziel, da Online-Zeit == Anzeigenzeit. Versuchend, dies durch Temperieren mit dem Geräte-Schlafmechanismus zu erreichen… 2) Ein [Chrome-Fehler gemeldet 2012-07-28] (https://code.google.com/p/chromium/issues/detail?id=139480) immer noch nicht Fest. porg vor 10 Jahren 0
Mein system.log enthält unerwünschte Zeilen in diesem Format: ` : ` gibt es in verschiedenen Varianten: `[irgendeine Art von Hexadezimal-ID] .com.google.Chrome [Dezimal-PID]` `Google Chrome [Dezimal-PID]` F.1) Wie stelle ich Google Chrome als Absender in conf.asl dar? Gebraucht? [= Absender] ignorieren ". WieIch habe versucht: `Chrome, Google Chrome," Google Chrome ", com.google.Chrome, .com.google.Chrome` F.2) Was ist die richtige Befehlszeile, um syslogd zu benachrichtigen? "Sudo kill -HUP pidOfMySylogd" verwendet. Wie lautet der Exit-Code? In meinem Fall war es null. porg vor 10 Jahren 0
3
Daniel Beck

Erstellen Sie einfach eine Datei »Neue Datenbanksuche ..., suchen nach Facility enthält" console" und Sender enthält" ObnoxiousLogger"nicht, und ignorieren Sie die standardmäßige Datenbanksuche nach Console Messages .


Mit dem folgenden Befehl können Sie einzelne Protokollfilterstufen für bestimmte Prozesse festlegen:

syslog -c processname -d 

Dadurch wird die Protokollebene der aktuell ausgeführten Instanzen processnameauf alle Nachrichten der Debugstufe oder höher festgelegt . Die möglichen Stufen sind jeweils folgende Zeichen pacewnid: (Panik), Warnung, Kritisch, Fehler, Warnung, Hinweis, Info und Debug .

Um nur die Protokollierung von Warnmeldungen und höher für Finder zu aktivieren, verwenden Sie Folgendes:

syslog -c Finder -w 

Sie müssen dies wiederholen, wenn Sie den fraglichen Prozess erneut starten.

Ich habe ähnliche Suchvorgänge für nur Dinge, die ich _want_ sehen möchte ... aber gibt es eine Möglichkeit, "ObnoxiousLogger" überhaupt daran zu hindern, die Syslog-Einrichtung zu treffen? Mein Anliegen: all das Geschnatter muss mindestens ein paar CPU-Zyklen berauben, oder? mralexgray vor 13 Jahren 0
@mralexgray Weitere Antwort zu meiner Antwort hinzugefügt. Leider läuft zurzeit kein unangenehmer Protokollierungsprozess, daher kann ich keine zuverlässigen Tests durchführen. Answer basiert daher hauptsächlich auf "man syslog". Daniel Beck vor 13 Jahren 0
1
Haru

Die vorgeschlagene Lösung von Torsten scheint nicht zu funktionieren. Es hat den Anschein, dass das Hinzufügen dieser Konfiguration zu der globalen Konfiguration asl.confnicht die erwartete Wirkung hat, wie Regeln behandelt werden.

Eine Lösung für dieses Problem fand ich, nachdem ich beinahe wahnsinnig mit der main asl.conf gekämpft hatte, die Verwendung separater asl/*Konfigurationsdateien für jeden Filter. Diese Dateien müssen in gespeichert werden/etc/asl/

Um beispielsweise "com.example.Sender" zu ignorieren und den Protokollspam aus system.log zu filtern, können Sie eine Datei /etc/asl/com.example.Sendermit folgendem Inhalt erstellen :

? [= Sender com.example.Sender] claim only * ignore 

Das claim onlyfor the match (ein "Absender" im Beispiel) bewirkt, dass die Regeln im Master asl.confignoriert werden, was dazu führt, dass die Dinge nicht enden system.log.

Vergessen Sie nicht, neu zu starten syslogd.

0
1.61803

Ich habe eine ausführlichere Antwort bei AskDifferent gepostet.

Geben Sie /etc/asl.confeine Regel wie die folgende ein

? [= Sender foobar] [<= Level error] notify com.apple.foobar op key value op key value -----query 1----- -----query 2---- ---------action-------- 

Um Nachrichten in beiden system.log und in zu ignorieren Console.app, sollten Sie Regeln hinzufügen, um Nachrichten vor dem folgenden Kommentar in zu ignorieren asl.conf.

# Flat file configurations formerly in syslog.conf

Beispiel mit Modifikator S, der Nachrichten ignoriert, die diesem Teilstring entsprechen SIMBL Agent.

? [= Sender SIMBL Agent] [S= Message warning: failed to get scripting definition from] ignore op -key-- ---value--- mod --key-- --------------------value----------------------- --------query 1------- -----------------------query 2------------------------------- action 

Nachdem Sie eine Regel hinzugefügt haben, starten Sie den Daemon erneut mit sudo killall HUP syslogd.

Erfolgreich getestet in OS X 10.8.5.