如何在 Log4perl 中抑制输出到 stdout 和 stderr?
我有这个子程序来初始化我的记录器:
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 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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我找到了。
我必须将此行添加到我的子中:
我在这里找到了答案: log4perl 常见问题解答
I found it.
I have to add this line to my sub:
I found the answer here: log4perl FAQ
Log::Log4perl->easy_init() 使用 ScreenAppender 初始化库,这就是日志发送到 stdout 的原因。
删除它并添加以下内容以将所有日志(调试级别及以上)写入文件:
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: