I am using Log::Log4Perl
for logging for my perl scripts. Everything is working great, except one thing; I have some common modules used by different scripts (and run by different users). I want those log files to have -rw-rw-rw-
permissions, but the following code which I am using all over doesn't seem to help:
In my /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
In my perl script 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;
}
This configuration and corresponding code create file script.log
with permission -rw-r--r--
, but I want -rw-rw-rw-
. Is there anything terribly wrong with the code? Please also read Can file appenders create files with different permissions?