NAME

Log::Fine::Handle::File - Output log messages to a file

SYNOPSIS

Provides logging to a file

use Log::Fine;
use Log::Fine::Handle::File;

# Get a new logger
my $log = Log::Fine->logger("foo");

# Create a file handle (default values shown)
my $handle = Log::Fine::Handle::File
    ->new( name => 'file0',
           mask => LOGMASK_EMERG | LOGMASK_ALERT | LOGMASK_CRIT | LOGMASK_ERR | LOGMASK_WARNING | LOGMASK_NOTICE | LOGMASK_INFO,
           dir  => "/var/log",
           file => "myapp.log",
           autoflush => 0 );

# Register the handle
$log->registerHandle($handle);

# Log something
$log->(INFO, "Opened new log handle");

DESCRIPTION

Log::Fine::Handle::File provides logging to a file. Note that this module will log messages to a specific file. Support for dynamic time-stamps in file names (e.g., myapp-080523.log) is provided by Log::Fine::Handle::File::Timestamp. Further features, such as log file rotation a la syslog can be added by sub-classing this class.

Constructor Parameters

The following parameters can be passed to Log::Fine::Handle::File->new():

  • name

    [optional] Name of this object (see Log::Fine). Will be autoset if not specified.

  • mask

    Mask to set the handle to (see Log::Fine::Handle)

  • dir

    Directory to place the log file

  • file

    Name of the log file. Note that if the given file is an absolute path, then dir will be ignored.

  • autoclose

    [default: 0] If set to true, will close the filehandle after every invocation of "msgWrite". NOTE: will significantly slow down logging speed if multiple messages are logged at once. Consider autoflush instead

  • autoflush

    [default: 0] If set to true, will force file flush after every write or print (see FileHandle and perlvar)

METHODS

fileHandle

Getter for file handle. If a file handle is not defined, then one will be created.

Override this method if you wish to support features such as time-stamped and/or rotating files.

Returns

A FileHandle object

msgWrite

See "msgWrite" in Log::Fine::Handle

BUGS

Please report any bugs or feature requests to bug-log-fine at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Log-Fine. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Log::Fine

You can also look for information at:

AUTHOR

Christopher M. Fuhrman, <cfuhrman at pobox.com>

SEE ALSO

perl, Log::Fine, Log::Fine::Handle

COPYRIGHT & LICENSE

Copyright (c) 2008, 2010-2011, 2013 Christopher M. Fuhrman, All rights reserved.

This program is free software licensed under the...

The BSD License

The full text of the license can be found in the LICENSE file included with this module.