web-dev-qa-db-ja.com

Mac OS Xアプリケーションごとにログレベル/設定を無効化/設定するにはどうすればよいですか?

Macのsyslogd「Cosole」ログは、ひどく書かれたアプリ(この場合は PathFinder.app )が一日中syslogdに絶え間なく吐き出されると、使用できなくなることがわかりました。沿って..

  1. aliasを実行可能バンドルにinsideアプリの「パッケージ」を作成し、そのエイリアスを端末からのみ起動します。プロセスは.../Applications/ObnoxiousLogger.appを参照し、右クリックして[パッケージの内容を表示]をクリックし、次に参照します...

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

    次に、GUIを使用してエイリアスを作成し、常にそのエイリアスからアプリを起動することを忘れないでください。これもターミナルからのみです。

    Finderを介してエイリアスを作成する必要があるため、これは面倒です(シンボリックリンクは機能せず、ターミナルを介してエイリアスを作成する方法はありません)。そして、それが他の方法で起動された場合、あなたは正方形に戻ります、logorrhea..このメソッドDID仕事、しかし、非常に短い時間です。

  2. launchctlコマンドまたはplist変数を使用してこれを設定できるように思われますが、これはlaunchdによって開かれるアプリではなく、launchdのドキュメントはいたるところにありますが、私はこれは可能性だと思います。

  3. ログを/ dev/nullに送信することについて何かを見ましたが、これが何らかのsyslogdパイプ、コマンド、または/etc/syslogd.conf設定、または何であるかは明確ではありませんでした...

アプリケーションごとに選択的にログを無音にする、またはさらに良い方法を増やす、またはMac OS Xで、プロセス/コマンドごとなどのロギングの冗長性を減らします。

4
mralexgray

ログメッセージを非常にきめ細かいレベルで無視/処理できるasl.conf(5)を確認することをお勧めします。

何かのようなもの:

? [= Sender ObnoxiousLogger] ignore

トリックを行う必要があります。それでも不快な送信者からのより深刻なメッセージを見たい場合は、次のようなものがあります。

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

より適切かもしれません。

:編集後/etc/asl.conf、忘れずにkill -HUPあなたのsyslogd。

5
Torsten Grust

ファイル"新しいデータベース検索…を作成し、施設には "console"が含まれますおよび送信者には "ObnoxiousLogger "、デフォルトを無視しますコンソールメッセージデータベース検索?

enter image description here


次のコマンドを使用して、特定のプロセスの個々のログフィルタリングレベルを設定できます。

syslog -c processname -d

これにより、現在実行中processnameのインスタンスのログレベルがデバッグレベル以上のすべてのメッセージに設定されます。可能なレベルは、pacewnidの各文字です:(Panic)、Alert、Critical、Error、Warning、Notice、Info、およびDebug

したがって、Finderで警告メッセージ以上のログのみを有効にするには、次を使用します。

syslog -c Finder -w

問題のプロセスを再開するたびに、これを繰り返す必要があります。

3
Daniel Beck

私はMacOSMojave(10.14.3)を使用していますが、この投稿は役に立ちました。1つの場所ですべてを一緒に見たことがないので、何がうまくいったのかを明確にしたいと思います。私の場合、system.logファイルを5秒の速度で常にスパムしているMicrosoftOneNoteメッセージを除外したいと思いました。サンプルメッセージ:

Feb  3 22:52:49 MyMacMini-2 Microsoft OneNote[393]: [ACT]:[TASKSCHEDULER]:[Info]:opQueue=0x6000012d7760 after call to waitUntilAllOperationsAreFinished

そこで、次のルールで/etc/asl.confを編集しました。

# Disable Microsoft OneNote logging as is filling up system.log!
? [= Sender Microsoft OneNote] ignore

次の行の前にこれを追加する必要があります。

# Rules for /var/log/system.log

そうでなければ、それは機能しません。次に、このコマンドでsyslogdを再起動するだけで、メッセージはsystem.logから削除されます。

Sudo killall -HUP syslogd
2
Turribeach

Torstenによって提案された解決策は機能していないようです。これらの構成をグローバルasl.confに追加しても、ルールの処理方法に期待される効果がないようです。

この問題の解決策は、メインのasl.confとの激しい戦いに出かけた後、フィルターごとに個別のasl/*構成ファイルを使用することであることがわかりました。これらのファイルは/etc/asl/に保存する必要があります

例えば「com.example.Sender」を無視し、system.logからのログスパムをフィルタリングするには、次の内容のファイル/etc/asl/com.example.Senderを作成できます。

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

一致のclaim only(例では「送信者」)により、マスターasl.confのルールが無視されます。つまり、system.logになりません。

もちろん、syslogdを再起動することを忘れないでください。

1
Haru

より詳細な answer をAskDifferentに投稿しました。

/etc/asl.confに次のようなルールを入れます

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

system.logConsole.appの両方のメッセージを無視するには、メッセージを無視するルールを追加する必要がありますbeforeasl.confの次のコメント。

# Flat file configurations formerly in syslog.conf

修飾子Sを使用した例。これは、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

ルールを追加した後、Sudo killall HUP syslogdでデーモンを再起動します。

OS X10.8.5で正常にテストされました。

0
1.61803