スクリプトからPerl変数をLog :: Log4perl設定ファイルで使用したいと思います。私はドキュメントを読んで、サブルーチンを使うことができることを発見しましたが、できるだけ簡単にやりたいと思います。私はアペンダのファイル名を設定したいLog :: Log4perl設定ファイルでPerl変数を使用するにはどうしたらいいですか?
:
log4perl.appender.av_std_LOGFILE.filename="whateverfilename.log"
しかし、これをこのようにやって、それが固定値です。
私は私のスクリプト内の変数にファイル名を持っていると、実行時にこれを使用したいと思います:
これはサブルーチンであるlog4perl.appender.av_std_LOGFILE.filename=\
sub { return &av_getLogfileName(); }
:
sub av_getLogfileName
{
return $av_std_LOGFILE;
}
これは動作しますが、私は希望戻り値が非常に簡単であるので、私のスクリプト内のサブを避けるために。
documentationは言う:
だから私が何かをしようとした
sub {...
は、アプリケーションが設定を解析時に実行されるPerlコードとして解釈される文字列で始まる各値...このように動作しませんでした:
log4perl.appender.av_std_LOGFILE.filename=\
sub { print "$av_std_LOGFILE"; }
変数の結果を取得する方法はありますか私のスクリプトの中にサブがない?成功した場合に
'$ av_std_LOGFILE'は、スクリプトで2回、モジュールが2回設定されています。どちらですか? – ThisSuitIsBlackNot
また、それが何であるか分からない限り、 '&'でサブルーチンを呼び出すべきではありません。 'return av_getLogfileName();'は 'return av_getLogfileName();'(あるいはより良いですが 'av_get_logfile_name();'でなければなりません。ありがとうございます; – ThisSuitIsBlackNot