大佬教程收集整理的这篇文章主要介绍了如何将Perl警告记录到Log4perl日志中?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
warnings编译也是必不可少的工具.
但是,当Perl脚本作为守护进程运行时,Perl警告将打印到STDERR中,而没有人可以看到它们,而不是相关程序的Log4perl日志文件.
有没有办法将Perl警告记录到Log4perl日志中?
例如,该代码将日志文件正常登录,但是如果作为守护进程运行,Perl警告将不会包含在日志中:
#!/usr/bin/env perl use Strict; use warnings; use Log::Log4perl qw(get_logger); # Define configuration my $conf = q( log4perl.logger = DEBUG,FileApp log4perl.appender.FileApp = Log::Log4perl::Appender::File log4perl.appender.FileApp.filename = test.log log4perl.appender.FileApp.layout = PatternLayout ); # Initialize logging behaviour Log::Log4perl->init( \$conf ); # Obtain a logger instance my $logger = get_logger("Foo::Bar"); $logger->error("Oh my,an error!"); $SIG{__WARN__} = sub { #local $Log::Log4perl::caller_depth = $Log::Log4perl::caller_depth + 1; $logger->warn("WARN @_"); }; my $foo = 100; my $foo = 44;
这仍然打印到STDERR:
"my" variable $foo masks earlier declaration in same scope at log.pl line 27.
并且日志文件没有捕获此警告.
您的具体问题会增加您遇到编译时警告的皱纹,因此您需要尽可能早地调整FAQ建议,以便在编译时设置日志记录.在一个BEGIN块中,尽可能靠近源的顶端:
BEGIN { ... all of your logging setup }
您可以通过运行启用警告的语法检查来判断是否是编译时警告:
% perl -cw program
如果您在语法检查期间看到警告,则是编译时警告.
我宁愿在开发过程中捕获编译时警告.他们不应该通过@R_263_10674@.
以上是大佬教程为你收集整理的如何将Perl警告记录到Log4perl日志中?全部内容,希望文章能够帮你解决如何将Perl警告记录到Log4perl日志中?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。