0

我想用 Perl 代码向我的 CGI 脚本添加一些日志,如下所示:

open(LOG, ">/path/to/my.log") or die;
print LOG "Some content...\n";
close(LOG);

但是,日志永远不会写入我的日志文件,而脚本仍在正确处理请求。

我对 Apache、CGI 和 Perl 不是很熟悉,所以请各位大师指点迷津。

4

2 回答 2

2

这可能是一个权限问题。脚本的运行者(可能是 user:apachehttpdnobody没有写入文件的权限。但是,可以肯定的是,您需要检查$!包含的内容。还可以尝试ErrorLog在脚本运行时检查 Apache 的文件。

我会将您的代码重写为:

use CGI::Carp qw( croak );

open my $log, '>', '/path/to/my.log' or croak "Error opening file: $!";
print $log "Some content...\n";
close $log;
于 2012-08-31T07:58:30.140 回答
0

问题已解决:对我的 Perl 脚本所做的更改只有在重新启动 Apache 后才会生效。不知道为什么它会这样,因为我认为 Perl 是一种解释性语言,它可以随时修改......

于 2012-09-03T02:25:33.243 回答