NAME

Log::Dispatch::File - Object for logging to files

SYNOPSIS

  use Log::Dispatch::File;
  my $file = Log::Dispatch::File->new( name      => 'file1',
                                       min_level => 'info',
                                       filename  => 'Somefile.log',
                                       mode      => 'append' );
  $file->log( level => 'emerg', message => "I've fallen and I can't get up\n" );

DESCRIPTION

This module provides a simple object for logging to files under the Log::Dispatch::* system.

METHODS

* new(%p)
This method takes a hash of parameters. The following options are valid:
-- name ($)
The name of the object (not the filename!). Required.
-- min_level ($)
The minimum logging level this object will accept. See the Log::Dispatch documentation for more information. Required.
-- max_level ($)
The maximum logging level this obejct will accept. See the Log::Dispatch documentation for more information. This is not required. By default the maximum is the highest possible level (which means functionally that the object has no maximum).
-- filename ($)
The filename to be opened for writing.
-- mode ($)
The mode the file should be opened with. Valid options are 'write', '>', 'append', '>>', or the relevant constants from Fcntl. The default is 'write'.
-- autoflush ($)
Whether or not the file should be autoflushed. This defaults to true.
-- callbacks( \& or [ \&, \&, ... ] )

This parameter may be a single subroutine reference or an array reference of subroutine references. These callbacks will be called in the order they are given and passed a hash containing the following keys:

 ( message => $log_message, level => $log_level )

The callbacks are expected to modify the message and then return a single scalar containing that modified message. These callbacks will be called when either the log or log_to methods are called and will only be applied to a given message once.

* log_message( message => $ )
Sends a message to the appropriate output. Generally this shouldn't be called directly but should be called through the log() method (in Log::Dispatch::Output).

AUTHOR

Dave Rolsky, <autarch@urth.org>