いつまでもプログラマー★いつまでもミュージシャン

プログラムとミュージックを愛する親父

Log4perl - Syslogへ出力 -

Log4perlでsyslogに出力するには、Log::Dispatch::Syslog を使用するとのことです。
ですが、実験環境ではすんなりと行きませんでした。

■モジュール群のインストール(大変でした)
> perl -MLog::Dispatch::Syslog -e ''
で、エラーが続出、結局以下のモジュールをインストールすることに

  1. Config-IniFiles-2.58
  2. IO-1.25
  3. Sys-Syslog-0.27
  4. ExtUtils-Install-1.54
  5. ExtUtils-Command-1.16
  6. ExtUtils-Manifest-1.58
  7. ExtUtils-MakeMaker-6.56
  8. Software-License-0.101410
  9. Pod-Readme-0.10
  10. Log-Dispatch-2.26
  11. ExtUtils-CBuilder-0.2703
  12. ExtUtils-ParseXS-2.2205
  13. Test-Harness-3.21
  14. YAML-Tiny-1.41
  15. Compress-Raw-Bzip2-2.027
  16. Compress-Raw-Zlib-2.027
  17. IO-Compress-2.027
  18. IO-Zlib-1.10
  19. Package-Constants-0.02
  20. Algorithm-Diff-1.15
  21. Text-Diff-0.35
  22. Archive-Tar-1.60
  23. Module-Build-0.3607
  24. Attribute-Handlers-0.88
  25. Params-Validate-0.95

インストールするサーバーが外部と接続ができないため、ガリガリとダウンロードしては、インストールして、依存関係があって、またダウンロードして、、、というのを繰り返す羽目に。
ネットに繋がっていればCPANビルドで一発なんですがね。
で、一番困ったのが「Params-Validate」のインストールです。
他のものはいつものようにMakefile.PLを使ってのインストールだったのですが、Build.PLなんて初めてでした。
とりあえず以下の流れで。

> perl ./Build.PL install_base=$HOME/perl5

> ./Build

> ./Build test

> ./Build install

これで準備OKです。

■Syslogを試す

まずは前回のサンプルlog-sample02.plを使います。

次に定義ファイルの内容です。以下のような感じになります。

 参考にしたサイト

- log4perl.conf -

log4perl.rootLogger=INFO, SYSLOG

log4perl.appender.SYSLOG=Log::Dispatch::Syslog
log4perl.appender.SYSLOG.min_level=info
log4perl.appender.SYSLOG.ident=myprocess
log4perl.appender.SYSLOG.facility=user
log4perl.appender.SYSLOG.layout=PatternLayout
log4perl.appender.SYSLOG.layout.ConversionPattern=%d %p %c - %m%n

これで、以下のように実行します。

> ./log-sample02.pl

Message from syslogd@libm01 at Fri May 28 12:50:28 2010 ...
libm01 myprocess: 2010/05/28 12:50:28 FATAL hoge.foo.bar - これは致命的なメッセージです。

バッチリと思いきや、FATALメッセージだけコンソールにも出てきてしまいました。何でなんでしょう?

と思いつつ、今日はこのあたりで。