##log4perl.conf [log4perl] log4perl.logger= DEBUG,Logfile, 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.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.MyCompany::Util::PARSE_DIR = DEBUG log4perl.logger.MyCompany::Util::CREATE_DIR = INFO ##PARSE_DIR.pm package MyCompany::Util::PARSE_DIR use strict; use warnings; use Log::Log4perl qw(:easy); Log::Log4perl::init( $ENV{CONF_DIR} . '/' ."log4perl.conf" ); my $logger = Log::Log4perl::get_logger("MyCompany::Util::PARSE_DIR"); $logger->info("Started processing"); 1; ##read_dirs.pl #!/usr/bin/perl use strict; use warnings; use Log::Log4perl qw(:easy); use MyCompany::Util::PARSE_DIR; ##Initializations Log::Log4perl::init( "$ENV{CONF_DIR}" . "/log4perl.conf" ); my $logger = Log::Log4perl::get_logger(); my $dir = "test"; my $data = MyCompany::Util::PARSE_DIR::get_data({dir=> $dir}); $logger->warn("could not get data") if (!$data); sub get_log{ use File::Basename; use POSIX qw(strftime); my $now_string = strftime("%Y-%m-%d", localtime); my $log = sprintf "%s.$now_string.log", basename( $0, '.pl' ); return "$ENV{LOG_DIR}" . '/'. $log; }