perl 安装LOG4perl 模块

环境信息

ubuntu 12.04 64位 桌面版

Log-Log4perl 的介绍网址:http://search.cpan.org/~mschilli/Log-Log4perl-1.49/lib/Log/Log4perl.pm

下载链接

wget http://search.cpan.org/CPAN/authors/id/M/MS/MSCHILLI/Log-Log4perl-1.49.tar.gz

安装

perl Makefile.PL
make && make install

测试LOG4perl 模块的配置文件 log.conf

log4perl.category.Foo.Bar=DEBUG,Logfile,Screen
log4perl.rootLogger=DEBUG,Logfile,Screen

log4perl.appender.Logfile=Log::Log4perl::Appender::File
log4perl.appender.Logfile.filename=\ 
                                     sub { return &log4::set_log_name(); }
log4perl.appender.Logfile.layout=Log::Log4perl::Layout::PatternLayout
log4perl.appender.Logfile.layout.ConversionPattern =%d{yyyy/M/d HH:mm:ss} %F %L - %m%n

log4perl.appender.Screen = Log::Log4perl::Appender::Screen
log4perl.appender.Screen.stderr = 0
log4perl.appender.Screen.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.Screen.layout.ConversionPattern =%d{yyyy/M/d HH:mm:ss} %F %L - %m%n

测试test.pl 程序

#!/usr/bin/perl
package log4;
use strict;
use FindBin qw($Bin);
use lib "$Bin/lib";
print "$Bin\n";
use Log::Log4perl qw(get_logger);
my $log = get_logger(__PACKAGE__);
my $log_name="log4.log";
my $log_conf = "log.conf";
print "$log_conf\n";

# Check config every 60 secs 
Log::Log4perl::init_and_watch($log_conf,60);  
 
 
$log->debug("Debug message");
$log->info("Info message");
$log->error("Error message");
$log->info(&ping);
sub ping
{

    my @ping=readpipe("ping -c 4 127.0.0.1");
    return @ping;
}
sub set_log_name
{
    return $log_name;
}

执行测试程序命令

perl test.pl

打印结果

log.conf
2017/6/16 14:23:10 test.pl 17 - Debug message
2017/6/16 14:23:10 test.pl 18 - Info message
2017/6/16 14:23:10 test.pl 19 - Error message
2017/6/16 14:23:13 test.pl 20 - PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_req=1 ttl=64 time=0.032 ms
64 bytes from 127.0.0.1: icmp_req=2 ttl=64 time=0.027 ms
64 bytes from 127.0.0.1: icmp_req=3 ttl=64 time=0.026 ms
64 bytes from 127.0.0.1: icmp_req=4 ttl=64 time=0.027 ms

--- 127.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.026/0.028/0.032/0.002 ms

并且日志文件 log4.log 内容如下

2017/6/16 14:24:34 test.pl 17 - Debug message
2017/6/16 14:24:34 test.pl 18 - Info message
2017/6/16 14:24:34 test.pl 19 - Error message
2017/6/16 14:24:37 test.pl 20 - PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_req=1 ttl=64 time=0.023 ms
64 bytes from 127.0.0.1: icmp_req=2 ttl=64 time=0.028 ms
64 bytes from 127.0.0.1: icmp_req=3 ttl=64 time=0.028 ms
64 bytes from 127.0.0.1: icmp_req=4 ttl=64 time=0.027 ms

--- 127.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.023/0.026/0.028/0.005 ms