Linux 用に作成されたプログラムがあり、MacOS 10.5 マシンでビルドして実行しようとしています。プログラムは問題なくビルドおよび実行されますが、syslog に対して多くの呼び出しが行われます。Mac で syslogd が実行されていることはわかっていますが、syslog 呼び出しの出力先がわかりません。
syslog 呼び出しの形式は次のとおりです。
syslog (LOG_WARNING, "Log message");
ログ出力を見つける場所はありますか?
/var/log/system.log
を使用して簡単に監視できますtail -f /var/log/system.log
「ロガー」 ( man logger
) および「syslog」 ( man syslog
) も参照してください。
疑わしい場合は、常にありman syslog
ます。
あなたはであなたのメッセージを見つけることができます/var/log/syslog
; 私のマシンは、高レベルのメッセージのみを含むように箱から出して設定されているため、設定が必要になる場合があります。
syslog(1)を介してメッセージを読み取ることも、次のようなコマンドを使用してテストメッセージを作成することもできます。
$ syslog -s -l INFO "Hello, world."
重大度P(「パニック」)を使用すると、コンソールにエキサイティングなメッセージがすぐに表示されます。
Mac OS Xは、syslog の機能のスーパーセットを実装しています。syslog はすべて存在しますが、ASL の一部として存在します。
Matthew Schinckel の回答で言及されているコンソールは、ASL の GUI です。サイドバーにリストされたクエリによって取得された、データベースに存在するすべてのメッセージが表示されます。デフォルトでは 2 つのクエリがあります。1 つはコンソール機能 (特に で使用されるNSLog
) で送信されたメッセージのみを表示し、もう 1 つはすべてのログ メッセージを表示します。全メッセージ クエリを確認します。そこにあなたのメッセージがきっと見つかるはずです。
その「すべて」にはアスタリスクが付いています。/etc/asl.conf を見ると、次の行が表示されます。
# save everything from emergency to notice
? [<= Level notice] store
幸いなことに、あなたの場合、メッセージはこのチェックに合格します。
チャーリーの答えに基づいて、のマンページを確認しsyslog.conf(5)
、ファイル/etc/syslog.conf
(syslog構成がデフォルトで定義されている場所であり、OS Xでも確認できる)を確認する必要があることを付け加えたいと思います。 10.5.x)。
openlog
プログラム内のどこかへの呼び出しを確認します。を呼び出した後、openlog
はsyslog
その出力を既定の場所ではなく、そのログ ファイルに保存します。