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