COMPUTER LINUX

【Linux】ログ出力

 

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 ユーザーレベルのメッセージ
mail メールシステムのメッセージ
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]: プログラムでエラーが発生しました

 

-COMPUTER, LINUX