次のような Perl コードを使用して、CGI スクリプトにいくつかのログを追加したいと考えています。
open(LOG, ">/path/to/my.log") or die;
print LOG "Some content...\n";
close(LOG);
ただし、スクリプトがリクエストを正しく処理している間、ログがログ ファイルに書き込まれることはありません。
私は Apache、CGI、Perl にはあまり詳しくありません。
おそらく許可の問題です。スクリプトの実行者 (おそらくユーザー: apache
、httpd
またはnobody
) には、ファイルへの書き込み権限がありません。ただし、確かに、何が含まれているかを確認する必要があり$!
ます。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;