1

Log::Log4Perlperl スクリプトのロギングに使用しています。1 つのことを除いて、すべてがうまく機能しています。さまざまなスクリプトで使用される (およびさまざまなユーザーによって実行される) いくつかの共通モジュールがあります。これらのログ ファイルにアクセス許可を設定したいのです-rw-rw-rw-が、私が使用している次のコードは役に立たないようです。

私の中で/etc/log4perl.conf

# Logger for /usr/local/bin/script.pl
log4perl.logger.SCRIPT=DEBUG, SCRIPT_LOG

log4perl.appender.SCRIPT_LOG           = Log::Dispatch::FileRotate
log4perl.appender.SCRIPT_LOG.filename  = /var/log/perl/script.log
log4perl.appender.SCRIPT_LOG.mode      = append
log4perl.appender.SCRIPT_LOG.autoflush = 1
log4perl.appender.SCRIPT_LOG.size      = 2097152
log4perl.appender.SCRIPT_LOG.max       = 5
log4perl.appender.SCRIPT_LOG.layout    = Log::Log4perl::Layout::PatternLayout

私のperlスクリプトではscript.pl

use Log::Log4perl qw(get_logger :levels);

sub _log4perl {

   umask 0000;
   Log::Log4perl->init("/etc/log4perl.conf");
   my $log4perl = get_logger("SCRIPT");    

   return $log4perl;
}

この構成と対応するコードscript.logは、許可を得てファイルを作成します-rw-r--r--が、必要です-rw-rw-rw-。コードに何かひどく問題がありますか? Can file appenders create files with different permissions?もお読みください。

4

1 に答える 1

1

アクセス許可を設定できます: http://metacpan.org/pod/Log::Dispatch::File

log4perl.appender.SCRIPT_LOG.permission = 0644

パーミッション ($)

ファイルがまだ存在しない場合は、ファイルを作成する際に使用するパーミッション。オプション。渡される引数は、0600 などの有効な 8 進数値、または S_IRUSR|S_IWUSR などの Fcntl から利用可能な定数でなければなりません。

8 進数値を渡す際の潜在的なトラップの詳細については、perlfunc の "chmod" を参照してください。

于 2013-04-03T11:42:25.427 に答える