1

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?

Gogi
  • 1,695
  • 4
  • 23
  • 36

1 Answers1

1

You could set permission: http://metacpan.org/pod/Log::Dispatch::File

log4perl.appender.SCRIPT_LOG.permission = 0644

permissions ($)

If the file does not already exist, the permissions that it should be created with. Optional. The argument passed must be a valid octal value, such as 0600 or the constants available from Fcntl, like S_IRUSR|S_IWUSR.

See "chmod" in perlfunc for more on potential traps when passing octal values around.

szabgab
  • 6,202
  • 11
  • 50
  • 64
user1126070
  • 5,059
  • 1
  • 16
  • 15