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");
 
Note that if you are using this output because you want to write to a file from multiple processes, you should open the file with the append "mode" (">>"), or else it's quite likely that one process will overwrite another.
I am also usually active on IRC as 'autarch' on "irc://irc.perl.org".
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)
The full text of the license can be found in the LICENSE file included with this distribution.