如何在mod_perl下查看所有警告

如何在mod_perl下查看所有警告,perl,logging,apache2,warnings,mod-perl2,Perl,Logging,Apache2,Warnings,Mod Perl2,在mod_Perl下运行脚本时,如何确保看到所有Perl的警告和错误消息?(Apache/2.2.16(Debian)[…]mod_perl/2.0.4 perl/v5.10.1) 我觉得我做的每件事都是正确的:我在httpd.conf中有“PerlWarn On”,我有 use strict; use warnings FATAL => 'all'; 在我所有的Perl文件中,当我自己使用warn()时,我会在/var/log/apache2/error.log中看到结果 但是很多信息

在mod_Perl下运行脚本时,如何确保看到所有Perl的警告和错误消息?(Apache/2.2.16(Debian)[…]mod_perl/2.0.4 perl/v5.10.1)

我觉得我做的每件事都是正确的:我在httpd.conf中有“PerlWarn On”,我有

use strict;
use warnings FATAL => 'all';
在我所有的Perl文件中,当我自己使用warn()时,我会在/var/log/apache2/error.log中看到结果

但是很多信息仍然没有传到我的耳朵里。例如,“无法定位对象方法”从未出现在日志中。剧本就这样结束了,我必须自己弄清楚在哪里,为什么

有什么我可能忽略的吗?

声明

use warnings FATAL => 'all';
这是一个很好的例子。它仅适用于当前块(在本例中为脚本),而不适用于脚本调用的模块或其他文件


为了调试的目的,在所有代码中寻找这种行为。

在您的一些脚本中,
$SIG{{uuuuu WARN}
$SIG{{uuuu DIE}
是否被重写?不,我没有涉及任何信号处理。请求由Apache2::Controller::Dispatch::Simple处理,控制器是Apache2::Controller+Apache2::Request,其余的几乎都是我自己的代码。无CGI模块。替换
使用警告FATAL=>“all”带有
使用警告使警告显示在error.log中。有没有可能是
FATAL=>all
让脚本在打印到STDERR之前就死掉了?你也可以使用Carp;本地$SIG{{uuuu WARN}=\&Carp::cluck
@Zaid,这难道不会只适用于当前文件,就像他遇到的问题一样吗?了解Carp::Always很好。它确实在日志中打印了关于我已经看到的警告(我用warn生成的警告)的额外信息,但不幸的是没有出现新的警告。@scozy,也许某个模块正在做一些有趣的警告?@dan1111:我一直在使用它,只要你放置它的调用脚本是stacktrace的一部分,它就会工作。