Reputation: 1238
I have this sub to initialize my logger:
sub initLogfiles{
Log::Log4perl->easy_init($INFO); # We log all debug, info, warn, error and fatal messages.
my $userlogappender = Log::Log4perl::Appender->new(
"Log::Log4perl::Appender::File",
filename => USERLOGFILE,
mode => "append",
recreate => 1
);
my $userloglayout = Log::Log4perl::Layout::PatternLayout->new("%d;%m%n");
$userlogappender->layout($userloglayout);
$userlogger->add_appender($userlogappender);
}
I only want to have the loginfo in my logfile. How do i prevent this from logging to stdout?
Upvotes: 4
Views: 1702
Reputation: 35816
Log::Log4perl->easy_init() initializes the library with a ScreenAppender, that's why the log are sent to stdout.
Remove it and add the following to write all logs (debug level and above) to file:
Log::Log4perl->get_logger()->level($DEBUG);
Upvotes: 5
Reputation: 1238
I found it. I have to add this line to my sub:
$userlogger->additivity(0);
I found the answer here: log4perl FAQ
Upvotes: 6