Ruby用syslogラッパライブラリを書いてみた

こんにちは、寺岡です。

最近、とある案件でこんな要望が上がって来ました。

  • Railsでsyslogを使ってログに出力する
  • 任意のfacilityを指定したい

Rubyでsyslogを扱うライブラリとして、SyslogLoggerなどがありましたが、
これらライブラリでは満たせない要件があったので、自作することにしました。

syslogライブラリ調査

syslogをloggerクラスのインターフェスで扱えるラッパライブラリは、紛らわしいよく似た名前のものがいっぱいあったりします。
その中の数個のライブラリを調べてみましたが、facilityが設定できないものや、faclityの設定はできるものの、初めてコンストラクタが呼び出された時だけ有効で、2インスタンス目以降は無視されるものなどがありました。

普段は困らないのですが、UnicornなどのアプリケーションサーバとRailsが出力するログのfacilityを分けたい場合など、1プロセスで複数のfacilityを使い分けたい、といった要望に対応することができません。

というわけで、作ってみた

sys_logger というgemを作って公開してみました。
これで晴れて紛らわしいよく似た名前グループの仲間入りですね!
……いい名前が思いかずについやってしまいました。ゴメンナサイ。

sys_loggerを使えばインスタンスごとにfacilityを設定したり、facilityを途中で変更できたりします。

Rails3で利用するにはapplication.rbなどで以下のように設定すればOKです。

githubやrubygemsを使うと、ちょっとしたコードでも気軽に公開できるので便利ですね。
これからも色々作って公開していきたいと思います!!

Comments are closed, but you can leave a trackback: Trackback URL.