Linuxには、OSに関する様々な情報やメッセージを収集して、ファイルに出力する仕組みがあります。
これをsyslog(シスログ)といいます。
ユーザーもloggerコマンドを使って、syslogにメッセージを出力することができます。
どのファイルに出力するかは、設定ファイル(RHELでは/etc/rsyslog.conf)で定義します。
標準では、以下のファイルにログが出力されます。
ファイル名 | 用途 |
/var/log/messages | 以下に挙げるものを除いたすべてのsyslogメッセージ |
/var/log/secure | セキュリティーおよび認証に関連するメッセージおよびエラー |
/var/log/maillog | メールサーバーに関連するメッセージおよびエラー |
/var/log/cron | 定期的に実行されるタスクに関連するログファイル |
/var/log/boot.log | システムの起動に関連するログファイル |
loggerコマンドの一般的な使い方は、以下のようになります。
logger -p ファシリティー.プライオリティー -t タグ メッセージ
ファシリティーはカーネルやユーザーレベルなど、どの箇所のメッセージかを表し、プライオリティーはエラーや通知といった重要度を表します。
デフォルトはuser.noticeです。
また、タグは識別用の任意の文字列で、デフォルトはユーザー名です。
ファシリティーとプライオリティーの種類は、以下のようになります。
■ ファシリティー(facility)
ファシリティー | 内容 |
kern | カーネルのメッセージ |
user | ユーザーレベルのメッセージ |
メールシステムのメッセージ | |
daemon | システムデーモンのメッセージ |
auth | セキュリティー/認証のメッセージ |
syslog | syslogデーモンによって内部的に生成されたメッセージ |
lpr | プリンターサブシステムのメッセージ |
news | NetNewsサブシステムのメッセージ |
cron | cronデーモンのメッセージ |
authpriv | セキュリティー/認証のメッセージ(authとは別のメッセージ) |
ftp | ftpデーモンのメッセージ |
uucp | uucpサブシステムのメッセージ |
local0 ~ local7 | アプリケーション用の予約 |
■ プライオリティー(priority)
プライオリティー | 内容 |
emerg | システム使用不可 |
alert | 緊急で対応が必要なエラー |
crit | 致命的なエラー |
err | 一般的なエラー |
warning | 警告 |
notice | 通知 |
info | 情報 |
debug | デバッグ |
※ 上の方ほど重大なエラーとなる
実行例
$ logger -p user.err -t ERROR "プログラムでエラーが発生しました"
$ tail -1 /var/log/messages
Mar 17 16:14:33 darjeeling ERROR[15580]: プログラムでエラーが発生しました