NAME

Log::Fine::Utils - Functional wrapper around Log::Fine

SYNOPSIS

Provides a functional wrapper around Log::Fine.

use Log::Fine::Handle;
use Log::Fine::Handle::File;
use Log::Fine::Handle::Syslog;
use Log::Fine::Levels::Syslog;
use Log::Fine::Utils;
use Sys::Syslog;

# Set up some handles as you normally would.  First, a handler for
# file logging:
my $handle1 = Log::Fine::Handle::File
    ->new( name      => "file0",
           mask      => Log::Fine::Levels::Syslog->bitmaskAll(),
           formatter => Log::Fine::Formatter::Basic->new() );

# And now a handle for syslog
my $handle2 = Log::Fine::Handle::Syslog
    ->new( name      => "syslog0",
           mask      => LOGMASK_EMERG | LOGMASK_CRIT | LOGMASK_ERR,
           ident     => $0,
           logopts   => 'pid',
           facility  => LOG_LEVEL0 );

# Open the logging subsystem with the default name "GENERIC"
OpenLog( handles  => [ $handle1, [$handle2], ... ],
         levelmap => "Syslog" );

# Open new logging object with name "aux".  Note this will switch
# the current logger to "aux"
OpenLog( name => "aux",
         handles  => [ $handle1, [[$handle2], [...] ]],
         levelmap => "Syslog" );

# Grab a ref to active logger
my $current_logger = CurrentLogger();

# Get name of current logger
my $loggername = $current_logger()->name();

# Switch back to GENERIC logger
OpenLog( name => "GENERIC" );

# Grab a list of defined logger names
my @names = ListLoggers();

# Log a message
Log( INFO, "The angels have my blue box" );

DESCRIPTION

The Utils class provides a functional wrapper for Log::Fine and friends, thus saving the developer the tedious task of mucking about in object-oriented land.

FUNCTIONS

The following functions are automatically exported by Log::Fine::Utils:

CurrentLogger

Returns the currently "active" Log::Fine::Logger object

Parameters

None

Returns

Currently active Log::Fine::Logger object

ListLoggers

Provides list of currently defined loggers

Parameters

None

Returns

Array containing list of currently defined loggers or undef if no loggers are defined

Log

Logs the message at the given log level

Parameters

  • level

    Level at which to log

  • message

    Message to log

Returns

1 on success

OpenLog

Opens the logging subsystem. If called with the name of a previously defined logger object, will switch to that logger, ignoring other given hash elements.

Parameters

A hash containing the following keys:

  • handles

    Either a single Log::Fine::Handle object or an array ref containing one or more Log::Fine::Handle objects

  • levelmap

    [optional] Log::Fine::Levels subclass to use. Will default to "Syslog" if not defined.

  • name

    [optional] Name of logger. If name references an already registered logger, then will switch to the named logger. Should the given name not exist, then will create a new logging object with that name, provided handles are provided. Should name not be passed, then 'GENERIC' will be used. Note that you must provide one or more valid handles when creating a new object.

  • no_croak

    [default: 0] If true, Log::Fine will not croak under certain circumstances (see Log::Fine)

Returns

1 on success

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.

CAVEATS

OpenLog() will croak regardless if {no_croak} is set if the following two conditions are met:

  • OpenLog() is passed the name of an unknown logger, thus necessitating the creation of a new logger object

  • No Log::Fine::Handle objects were passed in the {handles} array

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, Log::Fine::Logger

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.