library syslog/logger

[edit]

要約

Logger のようなインターフェイスを用いて syslog にログを記録するためのサブライブラリです。Syslog::Logger を使って複数のマシンでログを集約する事もできます。

デフォルトでは、Syslog::Logger はプログラム名として 'ruby' を使用します。これを変更したい場合は Syslog::Logger.new の第一引数にプログラム名を渡してください。

[注意] Syslog::Logger のプログラム名の変更は最初の初期化の時だけしか行う事ができません。これは Syslog::Logger が syslog を利用する上での制限です。(これは syslog(3) の制限でもあります)。一度 Syslog::Logger オブジェクトを作成した後はプログラム名を変更しようとしても無視されます。

ローカルマシンの syslogd にログを保存:

require 'syslog/logger'

log = Syslog::Logger.new 'my_program'
log.info 'this line will be logged via syslog(3)'

環境によっては syslog.conf の設定が必要である可能性があります。FreeBSD では、/etc/syslog.conf に以下のような記述が必要です。

!my_program
*.*                                             /var/log/my_program.log

この場合、/var/log/my_program.log に touch して syslogd に HUP シグナルを送信する必要があります。(Free BSD だと killall -HUP syslogd)

自動ロテートや自動圧縮などの細かい設定については、 newsyslog.conf(5) や newsyslog(8) を参照してください。

クラス

Syslog::Logger

Logger のようなインターフェイスを用いて syslog にログを記録するためのクラスです。

Syslog::Logger::Formatter

Syslog::Logger のデフォルトのログフォーマッタクラスです。

同時にrequireされるライブラリ

logger

ログを記録するためのライブラリです。

syslog

Unix系OS の syslog を扱うライブラリです。