WindowsにインストールしたApacheのログをsyslogに送る


WindowsにインストールしたApacheのログをsyslogに送るには一仕事必要です。
今回紹介する手順ではperlを利用してsyslogに送ります。


1. ActivePerlをインストールします。

2. ActivePerlに付属しているppmでNet::Syslogをインストールします。

3. 以下のようなコードを書いて適当な名前で適当なフォルダに保存します。
(例:C:\Program Files\Apache Group\binにsyslog.plという名前で保存)

#!C:/Perl/bin/perl

use Net::Syslog;

my $s=new Net::Syslog(Facility=>'local4',Priority=>'debug');

while ($log = <STDIN>) {
   $s->send($log);
} 


4. httpd.confには以下のように記述します。

CustomLog "| 'C:/Perl/bin/perl.exe' 'C:/Program Files/Apache Group/Apache2/bin/syslog.pl'" common

ErrorLog | 'C:/Perl/bin/perl.exe' 'C:/Program Files/Apache Group/Apache2/bin/syslog.pl'"

5. Apacheを再起動します。