The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Log::Dispatch::File::Locked - Subclass of Log::Dispatch::File to facilitate locking

VERSION

version 2.42

SYNOPSIS

  use Log::Dispatch;

  my $log = Log::Dispatch->new(
      outputs => [
          [
              'File::Locked',
              min_level => 'info',
              filename  => 'Somefile.log',
              mode      => '>>',
              newline   => 1
          ]
      ],
  );

  $log->emerg("I've fallen and I can't get up");

DESCRIPTION

This module acts exactly like Log::Dispatch::File except that it obtains an exclusive lock on the file while opening it.

CAVEATS

DANGER! Use very carefully in multi-process environments. Because the lock is obtained at file open time, not at write time, you may experience deadlocks in your system.

You can partially work around this by using the close_after_write option, which causes the file to be re-opened every time a log message is written.

Alternatively, the syswrite option does atomic writes, which may mean that you don't need locking at all.

See Log::Dispatch::File) for details on these options.

SEE ALSO

"flock" in perlfunc

AUTHOR

Dave Rolsky <autarch@urth.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2014 by Dave Rolsky.

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)