Here is a working example
use strict;
use warnings;
use Log::Log4perl;
Log::Log4perl::init( \'
log4perl.logger.Groceries=DEBUG, A1
log4perl.appender.A1=Log::Dispatch::File
log4perl.appender.A1.filename=Groceries.log
log4perl.appender.A1.mode=append
log4perl.appender.A1.layout=Log::Log4perl::Layout::PatternLayout
log4perl.appender.A1.layout.ConversionPattern=%d %p> %F{1}:%L %M - %m%
+n
log4perl.logger.Junk=DEBUG, A2
log4perl.appender.A2=Log::Log4perl::Appender::File
log4perl.appender.A2.filename=Junk.log
log4perl.appender.A2.mode=append
log4perl.appender.A2.layout=Log::Log4perl::Layout::PatternLayout
log4perl.appender.A2.layout.ConversionPattern=%d %p> %F{1}:%L %M - %m%
+n
' );
my $log = Log::Log4perl::get_logger("Groceries");
$log->info("Important Groceries Info!");
$log = Log::Log4perl::get_logger("Junk");
$log->info("Important Junk Info!");
You're probably only using the root logger (
my $log = get_logger();)