bin/ conf/ lib/ABC::Parser.pm lib/ABC::Parser2.pm lib/ABC::Parser3.pm #### [log4perl] log4perl.logger= INFO, Logfile, ERROR, DEBUG, Screen log4perl.appender.Logfile = Log::Log4perl::Appender::File log4perl.appender.Logfile.filename = sub { return get_log(); } log4perl.appender.Logfile.mode = append log4perl.appender.Logfile.layout = Log::Log4perl::Layout::PatternLayout log4perl.appender.Logfile.layout.ConversionPattern = %d %p> %m%n log4perl.appender.ERROR= Log::Log4perl::Appender::File log4perl.appender.ERROR.filename = sub { return get_log(); } log4perl.appender.ERROR.mode = append log4perl.appender.ERROR.layout = Log::Log4perl::Layout::PatternLayout log4perl.appender.ERROR.layout.ConversionPattern = %d %p> %m%n log4perl.appender.DEBUG= Log::Log4perl::Appender::File log4perl.appender.DEBUG.filename = sub { return get_log(); } log4perl.appender.DEBUG.mode = append log4perl.appender.DEBUG.layout = Log::Log4perl::Layout::PatternLayout log4perl.appender.DEBUG.layout.ConversionPattern = %d %p> %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 %p> %m%n [Modules level setup] log4perl.logger.main = INFO log4perl.logger.ABC::Parser = INFO log4perl.logger.ABC::Parser1 = INFO log4perl.logger.ABC::Parser2 = INFO #### package ABC::Parser; use strict; use warnings; use File::Slurp 'read_file'; use Data::Dumper; use Log::Log4perl qw(:easy); Log::Log4perl::init( "../conf/log4perl.conf" ); my $logger = Log::Log4perl::get_logger("ABC::Parser"); sub get_data($) { my ($params) = @_; my $raw_file = $params->{file}; my @raw_data = read_file($raw_file, err_mode => 'carp'); my $data = {}; $logger->info("done parsing"); $logger->warn("error statement"); $logger->debug("DEbug statement"); return $data; } 1; #### #!/usr/bin/perl -w use strict; use Getopt::Long; use Log::Log4perl qw(:easy); use ABC::Parser; use vars qw($debug); GetOptions( "debug|x" => \$debug, "help|h" => \&usage, ); ##Initializations Log::Log4perl::init( "../conf/log4perl.conf" ); my $logger = Log::Log4perl::get_logger(); my $data = ABC::Parser::get_data({file => "/tmp/test.data"}); $logger->error("could not get parsed data") if(!$data); $logger->info("Created output"); $logger->debug("$data") if ($debug); sub get_log{ use File::Basename; use POSIX qw(strftime); my $now_string = strftime("%Y-%m-%d", localtime); my $log = sprintf "%s.$now_string.info.log", basename( $0, '.pl' ); return $log; } __END__ #### -bash-3.00$ ./test_parser.pl 2009/07/26 06:13:29 INFO> Starting ./test_parser.pl 2009/07/26 06:13:29 INFO> done parsing 2009/07/26 06:13:29 WARN> error 2009/07/26 06:13:29 INFO> Created output file #### 2009/07/26 06:13:29 INFO> Starting ./parse_xheader.pl 2009/07/26 06:13:29 INFO> Starting ./parse_xheader.pl 2009/07/26 06:13:29 INFO> Starting ./parse_xheader.pl 2009/07/26 06:13:29 INFO> done parsing 2009/07/26 06:13:29 INFO> done parsing 2009/07/26 06:13:29 INFO> done parsing 2009/07/26 06:13:29 WARN> error 2009/07/26 06:13:29 WARN> error 2009/07/26 06:13:29 WARN> error 2009/07/26 06:13:29 INFO> Created output file 2009/07/26 06:13:29 INFO> Created output file 2009/07/26 06:13:29 INFO> Created output file