Cでは、次のように記録します。
syslog( LOG_INFO, "proxying %s", url );
Linuxでは、ログをどのように確認できますか?
less /var/log/syslog
はどうですか?
Fedora 19では、答えは/var/log/messages
のようです。ただし、/etc/rsyslog.conf
が変更されている場合は確認してください。
デフォルトでは、/var/log/syslog
でシステムログに記録されるため、次のユーザーが読み取ることができます。
tail -f /var/log/syslog
ファイルが存在しない場合は、/etc/syslog.conf
をチェックしてsyslogdの構成ファイルを確認してください。構成ファイルは異なる可能性があるので、異なるファイルを使用している場合は実行中のプロセスを確認してください。
# ps wuax | grep syslog
root /sbin/syslogd -f /etc/syslog-knoppix.conf
注:一部のディストリビューション(Knoppixなど)では、ログに記録されたすべてのメッセージを別の端末(例:/dev/tty12
)に送信できます。 tty12
を押してみてください Control+Alt+F12。
lsof
ツールを使用して、syslogd
プロセスが使用しているログファイルを見つけることもできます。
Sudo lsof -p $(pgrep syslog) | grep log$
シェルでsyslogdにテストメッセージを送信するには、次を試してください。
echo test | logger
トラブルシューティングには、トレースツール(Linuxではstrace
、Unixではdtruss
)を使用します。例:
Sudo strace -fp $(cat /var/run/syslogd.pid)
tail -f /var/log/syslog | grep process_name
ここで、process_name
は、関心のあるプロセスの名前です。
非常に便利なユーティリティはjournalctl
です。
たとえば、syslogをコンソールに表示するには:journalctl -t <syslog-ident>
、ここで<syslog-ident>
は、syslogを初期化するために関数openlog
に付与したIDです。