Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  LOG::REPORT::DISPATCHER::FILE (3)

.ds Aq ’


Log::Report::Dispatcher::File - send messages to a file or file-handle



   is a Log::Report::Dispatcher


 dispatcher Log::Report::Dispatcher::File => stderr
   , to => \*STDERR, accept => NOTICE-;

 # close a dispatcher
 dispatcher close => stderr;

 # let dispatcher open and close the file
 dispatcher FILE => mylog, to => /var/log/mylog
   , charset => utf-8;
 dispatcher close => mylog;  # will close file

 # open yourself, then also close yourself
 open OUT, ">:encoding(iso-8859-1)", /var/log/mylog
     or fault "...";
 dispatcher FILE => mylog, to => \*OUT;
 dispatcher close => mylog; 
 close OUT;

 # dispatch into a scalar
 my $output = ;
 open $outfile, >, \$output;
 dispatcher FILE => into-scalar, to => \$outfile;
 dispatcher close => into-scalar;
 print $output;


This basic file logger accepts an file-handle or filename as destination.

[1.00] writing to the file protected by a lock, so multiple processes can write to the same file.

Extends DESCRIPTION in Log::Report::Dispatcher.


Extends METHODS in Log::Report::Dispatcher.


Extends Constructors in Log::Report::Dispatcher.
Log::Report::Dispatcher::File-><B>newB>($type, $name, %options)

 -Option       --Defined in             --Default
  accept         Log::Report::Dispatcher  depend on mode
  charset        Log::Report::Dispatcher  LOCALE
  format                                  <adds timestamp>
  format_reason  Log::Report::Dispatcher  LOWERCASE
  locale         Log::Report::Dispatcher  <system locale>
  mode           Log::Report::Dispatcher  NORMAL
  replace                                 false
  to                                      <required>

accept => REASONS
charset => CHARSET
format => CODE|’LONG [1.00] process each printed line. By default, this adds a timestamp, but you may want to add hostname, process number, or more.

   format => sub { [.localtime().] .$_[0] }
   format => sub { shift }   # no timestamp
   format => LONG

The first parameter to format is the string to print; it is already translated and trailed by a newline. The second parameter is the text-domain (if known). [1.10] As third parameter, you get the $msg raw object as well (maybe you want to use the message context?)

The LONG format is equivalent to:

  my $t = strftime "%FT%T", gmtime;
  "[$t $$] $_[1] $_[0]"

Use of context:

   format => sub { my ($msgstr, $domain, $msg) = @_;
      my $host = $msg->context->{host};
      "$host $msgstr";

locale => LOCALE
mode => ’NORMAL’|’VERBOSE’|’ASSERT’|’DEBUG’|0..3
replace => BOOLEAN Only used in combination with a FILENAME: throw away the old file if it exists. Probably you wish to append to existing information.

Use the LOCALE setting by default, which is LC_CTYPE or LC_ALL or LANG (in that order). If these contain a character-set which Perl understands, then that is used, otherwise silently ignored.

to => FILENAME|FILEHANDLE|OBJECT|CODE You can either specify a FILENAME, which is opened in append mode with autoflush on. Or pass any kind of FILE-HANDLE or some OBJECT which implements a print() method. You probably want to have autoflush enabled on your FILE-HANDLES.

When cleaning-up the dispatcher, the file will only be closed in case of a FILENAME.

[1.10] When you pass a CODE, then for each log message the function is called with two arguments: this dispatcher object and the message object. In some way (maybe via the message context) you have to determine the log filename. This means that probably many log-files are open at the same time.

   # configuration time
   dispatcher FILE => logfile, to =>
       sub { my ($disp, $msg) = @_; $msg->context->{logfile} };

   # whenever you want to change the logfile
   textdomain->updateContext(logfile => /var/log/app);
   (textdomain mydomain)->setContext(logfile => /var/log/app);

   # or
   error __x"help", _context => {logfile => /dev/tty};
   error __x"help", _context => "logfile=/dev/tty";


Extends Accessors in Log::Report::Dispatcher.
$obj-><B>filenameB>() Returns the name of the opened file, or undef in case this dispatcher was started from a file-handle or file-object.
$obj-><B>isDisabledB>() Inherited, see Accessors in Log::Report::Dispatcher
$obj-><B>modeB>() Inherited, see Accessors in Log::Report::Dispatcher
$obj-><B>nameB>() Inherited, see Accessors in Log::Report::Dispatcher
$obj-><B>needsB>( [$reason] ) Inherited, see Accessors in Log::Report::Dispatcher
$obj-><B>outputB>($msg) Returns the file-handle to write the log lines to. [1.10] This may depend on the $msg (especially message context)
$obj-><B>typeB>() Inherited, see Accessors in Log::Report::Dispatcher

    File maintenance

$obj-><B>closeB>() Only when initiated with a FILENAME, the file will be closed. In any other case, nothing will be done.
$obj-><B>rotateB>($filename|CODE) [1.00] Move the current file to $filename, and start a new file.


Extends Logging in Log::Report::Dispatcher.
Log::Report::Dispatcher::File-><B>addSkipStackB>(@CODE) Inherited, see Logging in Log::Report::Dispatcher
Log::Report::Dispatcher::File-><B>collectLocationB>() Inherited, see Logging in Log::Report::Dispatcher
$obj-><B>collectStackB>( [$maxdepth] )
Log::Report::Dispatcher::File-><B>collectStackB>( [$maxdepth] ) Inherited, see Logging in Log::Report::Dispatcher
$obj-><B>logB>(HASH-$of-%options, $reason, $message, $domain) Inherited, see Logging in Log::Report::Dispatcher
$obj-><B>skipStackB>() Inherited, see Logging in Log::Report::Dispatcher
Log::Report::Dispatcher::File-><B>stackTraceLineB>(%options) Inherited, see Logging in Log::Report::Dispatcher
$obj-><B>translateB>(HASH-$of-%options, $reason, $message) Inherited, see Logging in Log::Report::Dispatcher


Extends DETAILS in Log::Report::Dispatcher.


This module is part of Log-Report distribution version 1.13, built on February 03, 2016. Website:


Copyrights 2007-2016 by [Mark Overmeer]. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See

Search for    or go to Top of page |  Section 3 |  Main Index

perl v5.20.3 LOG::REPORT::DISPATCHER::FILE (3) 2016-02-03

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.