Pertanyaan Bagaimana cara menonaktifkan / mengatur tingkat pencatatan / preferensi Aplikasi PER Mac OS X?


Saya menemukan log syslogd "Cosole" Mac saya menjadi tidak dapat digunakan ketika beberapa aplikasi yang ditulis dengan buruk (PathFinder.app dalam hal ini) terus-menerus memuntahkan syslogd sepanjang hari .. Saya membaca bahwa Anda bisa menonaktifkan aplikasi PER PER oleh ..

  1. Menciptakan sebuah alias ke bundel yang dapat dieksekusi dalam App "paket", dan kemudian HANYA meluncurkan alias itu DARI terminal. Prosesnya adalah ... Jelajahi /Applications/ObnoxiousLogger.app, klik kanan, "Tampilkan Konten Paket", lalu Browse ke ...

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

    Kemudian Anda membuat alias melalui GUI dan ingat untuk selalu meluncurkan aplikasi dari alias itu, lagi-lagi HANYA melalui terminal.

    Ini menjengkelkan, karena Anda HARUS membuat alias melalui Finder (symlinking tidak berfungsi, dan tidak ada cara untuk membuat alias melalui terminal). Dan jika diluncurkan dengan cara APA PUN, kamu kembali ke titik awal, logorrhea.. Metode ini DID berfungsi, tetapi untuk waktu yang sangat singkat.

  2. Tampaknya Anda dapat mengatur ini melalui launchctl perintah, atau variabel plist, tetapi ini bukan aplikasi yang dibuka oleh launchd, dan dokumentasi launchd begitu menyeluruh, tapi saya kira ini adalah kemungkinan, saya kira.

  3. Saya melihat sesuatu tentang mengirim log ke / dev / null, tetapi tidak jelas apakah ini semacam pipa syslogd, atau perintah, atau pengaturan /etc/syslogd.conf, atau apa ...

Tolong beri tahu saya jika Anda memiliki cara yang pasti secara selektif membungkam penebangan per aplikasi, atau bahkan lebih baik, menambah atau mengurangi log verbosity, per proses / perintah, dll di Mac OS X.


4
2018-05-02 22:17


asal


Pertimbangkan untuk menerima jawaban atas pertanyaan Anda jika mereka memecahkan masalah dengan mengklik tanda centang di samping mereka, atau alternatif mengedit pertanyaan Anda atau mengomentari jawaban mengapa mereka tidak bekerja untuk Anda. - Daniel Beck♦


Jawaban:


Anda mungkin ingin melihat asl.conf(5) yang memungkinkan Anda untuk mengabaikan / memproses pesan log pada tingkat yang sangat halus.

Sesuatu seperti:

? [= Sender ObnoxiousLogger] ignore

harus melakukan trik. Jika Anda masih ingin melihat pesan yang lebih serius dari pengirim yang menjengkelkan, sesuatu di sepanjang baris:

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

mungkin lebih tepat.

Catatan: setelah mengedit /etc/asl.conf, jangan lupa kill -HUP syslogd Anda.


5
2017-08-10 09:25



Thx untuk asl.conf. Sebuah ObnoxiousLogger dapat memiliki efek yang lebih keras daripada "mencuri CPU": Mencegah tidur sistem, seperti yang sering ditulis disk terus menerus mengatur ulang timer tidur! Pelakunya adalah saya Google Chrome, baik di Mac & Menang. Saya harap ini bug yang tidak bersalah. Tetapi sulit untuk dipercaya: 1) Memiliki pengguna online sepanjang waktu adalah tujuan bisnis walikota, seperti waktu online == ad-time. Menggoda untuk mencapainya dengan menggunakan mekanisme tidur perangkat ... 2) A Bug Chrome dilaporkan 2012-07-28 masih belum diperbaiki. - porg
System.log saya berisi baris yang tidak diinginkan dalam format ini: <date> <hostname> <sender>: <function or object id> <message>  <pengirim> hadir dalam berbagai rasa: [some kind of hexadecimal id].com.google.Chrome[decimal PID]  Google Chrome[decimal PID]  Q.1) Bagaimana cara mencocokkan Google Chrome sebagai pengirim dalam conf.asl? Bekas ? [= Sender <sendername>] ignore. Seperti <nama pengguna> saya mencoba: Chrome, Google Chrome, "Google Chrome", com.google.Chrome, .com.google.Chrome  Q.2) Apa perintah yang benar untuk memberi tahu syslogd? Bekas sudo kill -HUP pidOfMySylogd. Apa yang harus menjadi kode keluar? Dalam kasus saya itu nol. - porg


Buat saja File »Pencarian Database Baru ..., mencari Fasilitas berisi "console" dan Pengirim tidak berisi "ObnoxiousLogger", dan abaikan default Pesan Konsol pencarian basis data?

enter image description here


Anda dapat menggunakan perintah berikut untuk menetapkan tingkat pemfilteran log individual untuk proses tertentu:

syslog -c processname -d

Ini akan mengatur tingkat log sedang berjalan contoh dari processname untuk semua pesan tingkat debug atau lebih tinggi. level yang mungkin adalah masing-masing karakter pacewnid: (Panik), Waspada, Kritis, Kesalahan, Peringatan, Pemberitahuan, Info, dan Debug.

Jadi, untuk hanya mengaktifkan pencatatan pesan peringatan dan lebih tinggi untuk Finder, gunakan:

syslog -c Finder -w

Anda perlu mengulangi ini setiap kali Anda memulai ulang proses yang dimaksud.


3
2018-05-18 17:53



Saya memiliki pengaturan pencarian serupa untuk hanya hal-hal yang saya ingin untuk melihat .. tetapi adakah cara untuk mencegah "ObnoxiousLogger" dari pernah memukul fasilitas syslog, sama sekali? Perhatian saya: semua obrolan itu harus merampok setidaknya beberapa siklus cpu, bukan? - mralexgray
@mralexgray Ditambahkan beberapa penelitian lebih lanjut untuk jawaban saya. Sayangnya, saya tidak memiliki proses penebangan yang mengganggu saat ini, jadi saya tidak dapat melakukan pengujian yang dapat diandalkan. Oleh karena itu, jawaban terutama didasarkan pada man syslog. - Daniel Beck♦


Solusi yang diusulkan oleh Torsten tampaknya tidak bekerja. Sepertinya menambahkan konfigurasi tersebut ke global asl.conftidak memiliki efek yang diharapkan seperti cara aturan ditangani.

Solusi untuk masalah ini, saya temukan, setelah saya hampir berserk berkelahi dengan asl.conf utama, adalah menggunakan terpisah asl/* file konfigurasi untuk setiap filter. File-file itu harus disimpan /etc/asl/

misalnya untuk mengabaikan "com.example.Sender" dan filter spam log dari system.log kita bisa membuat file /etc/asl/com.example.Sender dengan konten berikut:

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

Itu claim only untuk pertandingan ("Pengirim" dalam contoh) menyebabkan aturan di master asl.conf untuk diabaikan yang berarti hal-hal tidak akan berakhir system.log.

Jangan lupa untuk memulai kembali syslogd, tentu saja.


1
2017-08-08 00:10





Saya posting yang lebih detail menjawab di AskDifferent.

Dimasukkan /etc/asl.conf aturan seperti berikut ini

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

Untuk mengabaikan pesan di keduanya system.log  dan di Console.app, Anda harus menambahkan aturan untuk mengabaikan pesan sebelum komentar berikut di asl.conf.

# Flat file configurations formerly in syslog.conf

Contoh dengan pengubah S, yang mengabaikan pesan yang cocok dengan substring tersebut 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

Setelah menambahkan aturan restart daemon dengan sudo killall HUP syslogd.

Diuji dengan sukses di OS X 10.8.5.


0
2018-02-13 14:36