web-dev-qa-db-ja.com

Macでのsyslog出力の読み取り

Linux用に作成されたプログラムがあり、それをMacOS 10.5マシンでビルドして実行しようとしています。プログラムは問題なくビルドおよび実行されますが、syslogを何度も呼び出します。 syslogdがMacで実行されていることは知っていますが、syslog呼び出しの出力先が見つからないようです。

Syslog呼び出しは次の形式です

syslog (LOG_WARNING, "Log message");

ログ出力をどこで見つけることができますか?

50
arigreen

/var/log/system.log

tail -f /var/log/system.logを使用して簡単に監視できます

「ロガー」(man logger)および「syslog」(man syslog)も参照してください。

59
maerics

おそらくConsole.appを使用してログファイルを表示する必要があります。それはきれいです。

左側でデバイスを選択し、右側でメッセージをフィルタリングします。

enter image description here

47

疑わしい場合は、常にman syslogがあります。

メッセージは/var/log/syslogにあります。私のマシンは、高レベルのメッセージのみを含むように設定されているため、設定が必要になる場合があります。

syslog(1)を使用してメッセージを読み取ることも、次のようなコマンドでテストメッセージを作成することもできます。

$ syslog -s -l INFO "Hello, world."

重大度P(「パニック」)を使用すると、すぐにコンソールに刺激的なメッセージが表示されます。

12
Charlie Martin

注意するのは興味深いかもしれません:Appleは過去に実際のsyslogdを使用していましたが、その間すべてがASL(Apple System Log)に切り替わりました。syslogコマンドはまだ使用可能ですが、この1つのログのみにアクセスします設定されたすべてのログファイルでASLのすべてのログメッセージにアクセスする場合は、logコマンドを使用します。

例えば。以下は、過去2日間にSafariによって生成されたすべてのログメッセージを示しています(しばらくお待ちください)。

log show --predicate 'process == "Safari"' --last 2d

見る man log実行できるすべてのアクション、認識しているすべてのパラメーター、およびフィルターできる属性。

8
Mecki

Mac OS Xは syslogの機能のスーパーセット を実装しています。 syslogはすべてありますが、ASLの一部です。

Matthew Schinckelの答えで言及されたコンソールは、ASLのGUIです。サイドバーにリストされているクエリによって取得されたデータベースに存在するメッセージが表示されます。デフォルトでは2つのクエリがあります。 1つはコンソール機能で送信されたメッセージ(特にNSLogなどで使用される)のみを表示し、もう1つはallログメッセージを表示します。全メッセージクエリを確認します。あなたはおそらくそこにあなたのメッセージを見つけるでしょう。

「すべて」にはアスタリスクが付いています。 /etc/asl.confを見ると、次の行が表示されます。

# save everything from emergency to notice
? [<= Level notice] store

幸いなことに、あなたの場合、警告は通知よりも大きい(より小さい数である)ため、メッセージはこのチェックに合格します。

6
Peter Hosey

チャーリーの答えに基づいて、syslog.conf(5)のマンページを見て、ファイル/etc/syslog.conf(これは、syslog構成がデフォルトで定義されている場所であり、OS X 10.5.xでも見られます)。

1
ayaz

プログラムのどこかでopenlogの呼び出しを確認してください。 openlogを呼び出した後、syslogは、デフォルトの場所ではなく、そのログファイルに出力を保存します。

0
Peter Hosey