| Log-Fine documentation | Contained in the Log-Fine distribution. |
Log::Fine::Handle - Controls where to send logging output
Sets up an output handle for log messages
use Log::Fine;
use Log::Fine::Handle;
# instantiate the handle (default values shown)
my $handle = Log::Fine::Handle::Foo
->new( name => "foo0",
mask => Log::Fine::Handle->DEFAULT_LOGMASK,
formatter => Log::Fine::Formatter:Basic->new() );
# see if a handle is loggable at a given level
my $rc = $handle->isLoggable(INFO);
# write a message
$handle->msgWrite(INFO, "Informational message", 1);
A Log::Fine::Handle object controls where to send formatted log messages. The destination can be a file, syslog, a database table, or simply to output. Message formatting is then handled by a formatter object.
Getter/Setter for the objects formatter attribute
[optional] A valid Log::Fine::Formatter object
A Log::Fine::Formatter object
Specifies whether the handle is loggable at the given level.
Name of level or numeric value representing level
1 if this level is loggable, undef otherwise
Tells the handle to output the given log message.
Note: msgWrite() is an internal method to the Log::Fine framework, meant to be sub-classed. Use log in Log::Fine::Logger for actual logging.
Level at which to log
Message to log
Passed to caller (caller in perlfunc) for accurate method logging
None
Please report any bugs or feature requests to
bug-log-fine-handle 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.
You can find documentation for this module with the perldoc command.
perldoc Log::Fine
You can also look for information at:
$Id: b80416da666abcc143c7915744a4d61315ecc81a $
Christopher M. Fuhrman, <cfuhrman at panix.com>
perl, Log::Fine, Log::Fine::Formatter
Copyright (c) 2008, 2010 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.
| Log-Fine documentation | Contained in the Log-Fine distribution. |
use strict; use warnings; package Log::Fine::Handle; use base qw( Log::Fine ); use Log::Fine; use Log::Fine::Formatter::Basic; use Log::Fine::Levels; our $VERSION = $Log::Fine::VERSION;
sub formatter { my $self = shift; my $formatter = shift; # if the first argument is a valid formatter, then set the # objects formatter attribute appropriately $self->{formatter} = $formatter if (defined $formatter and $formatter->isa("Log::Fine::Formatter")); # return the objects formatter attribute return $self->{formatter}; } # formatter()
sub isLoggable { my $self = shift; my $lvl = shift; # Return undef if level is not defined return unless defined $lvl; # convert level to value if we are given a string, otherwise # use value as is. my $val = ($lvl =~ /^\d+$/) ? $lvl : $self->levelMap()->levelToValue($lvl); # Make sure we have a valid value return unless defined($val); my $shifted = 2 << $val; # bitand the level and the mask to see if we're loggable return (($self->{mask} & $shifted) == $shifted) ? 1 : undef; } # isLoggable()
sub msgWrite { my $self = shift; my $class = ref $self; $self->_fatal( "direct call to abstract method msgWrite()!\n See Log::Fine::Handle documentation" ) if $class eq 'Log::Fine::Handle'; $self->_fatal("call to abstract method ${class}::msgWrite()"); } # msgWrite() # -------------------------------------------------------------------- ## # Initializes our object sub _init { my $self = shift; # perform super initializations $self->SUPER::_init(); # set default bitmask $self->{mask} = $self->levelMap()->bitmaskAll() unless defined $self->{mask}; # set the default formatter $self->{formatter} = Log::Fine::Formatter::Basic->new() unless (defined $self->{formatter} and $self->{formatter}->isa("Log::Fine::Formatter")); # Victory! return $self; } # _init()
1; # End of Log::Fine::Handle