Log::Dispatch::File::Locked - Subclass of Log::Dispatch::File to facilitate locking
version 2.38
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");
This module acts exactly like Log::Dispatch::File except that it obtains an exclusive lock on the file while opening it.
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.
close_after_write
Alternatively, the syswrite option does atomic writes, which may mean that you don't need locking at all.
syswrite
See Log::Dispatch::File) for details on these options.
"flock" in perlfunc
Dave Rolsky <autarch@urth.org>
This software is Copyright (c) 2013 by Dave Rolsky.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)
To install Log::Dispatch, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Log::Dispatch
CPAN shell
perl -MCPAN -e shell install Log::Dispatch
For more information on module installation, please visit the detailed CPAN module installation guide.