##test_log.pl #!/usr/bin/perl use strict; use warnings; use Log::Log4perl; use File::Basename; Log::Log4perl::init_once("$ENV{CONF_PATH}" . "/log4perl.conf" ); sub get_log{ use POSIX qw(strftime); my $now_string = strftime("%Y-%m-%d", localtime); my $log = sprintf "%s.$now_string.info.log", basename( $0 ); return "$ENV{LOG_PATH}" . '/'. $log; } use Loader; Loader::load_script1(); Loader::load_script2(); __END__; ##Loader.pm package Loader; use strict; use warnings; sub load_script1 { my ($log) = Log::Log4perl::get_logger("SCRIPT1"); $log->info("inside script1 method"); } sub load_script2 { my ($log) = Log::Log4perl::get_logger("SCRIPT2"); $log->info("inside script2 method"); } 1; ##log4perl.conf [log4perl] log4perl.logger=INFO,Screen log4perl.appender.Logfile1 = Log::Log4perl::Appender::File log4perl.appender.Logfile1.filename = sub { return "log1"; } log4perl.appender.Logfile1.mode = append log4perl.appender.Logfile1.additivity =0 log4perl.appender.Logfile1.layout = Log::Log4perl::Layout::PatternLayout log4perl.appender.Logfile1.layout.ConversionPattern = %d %p> %m%n log4perl.appender.Logfile2 = Log::Log4perl::Appender::File log4perl.appender.Logfile2.filename = sub { return "log2"; } log4perl.appender.Logfile2.mode = append log4perl.appender.Logfile2.additivity =0 log4perl.appender.Logfile2.layout = Log::Log4perl::Layout::PatternLayout log4perl.appender.Logfile2.layout.ConversionPattern = %d %p> %m%n [Modules level setup] log4perl.logger.main = INFO log4perl.logger.script = INFO log4perl.logger.SCRIPT1= INFO,Logfile1 log4perl.logger.SCRIPT2= INFO,Logfile2 log4perl.appender.Screen = Log::Log4perl::Appender::Screen log4perl.appender.Screen.stderr = 0 log4perl.appender.Screen.layout = Log::Log4perl::Layout::SimpleLayout