NAME

DTA::TokWrap::Logger - DTA::Tokwrap logging facility using Log::Log4perl

SYNOPSIS

use DTA::TokWrap::Logger;

##========================================================================
## Functions: Initialization

PACKAGE->logInit();
PACKAGE->ensureLog();
$bool = CLASS_OR_OBJECT->logInitialized();

##========================================================================
## Methods: get logger

$logger = $class_or_obj->logger();

##========================================================================
## Methods: messages

$class_or_obj->trace (@msg);  ##-- 'TRACE'-level message
$class_or_obj->debug (@msg);  ##-- 'DEBUG'-level message
$class_or_obj->info  (@msg);  ##-- 'INFO'-level message
$class_or_obj->warn  (@msg);  ##-- 'WARN'-level message
$class_or_obj->error (@msg);  ##-- 'ERROR'-level message
$class_or_obj->fatal (@msg);  ##-- 'FATAL'-level message

$class_or_obj->llog($level, @msg);  ##-- variable-level message (numeric)
$class_or_obj->vlog($how,   @msg);  ##-- variable-level message (symbolic)

##========================================================================
## Methods: carp, croak & friends

$class_or_obj->logwarn  (@msg);   ##-- warn w/o stack trace
$class_or_obj->logcarp  (@msg);   ##-- warn w/ 1-level stack trace
$class_or_obj->logcluck (@msg);   ##-- warn w/ full stack trace

$class_or_obj->logdie    (@msg);  ##-- die w/o stack trace
$class_or_obj->logcroak  (@msg);  ##-- die w/ 1-level stack trace
$class_or_obj->logconfess(@msg);  ##-- die w/ full stack trace

DESCRIPTION

DTA::TokWrap::Logger provides an abstract base class for object-oriented access to the Log::Log4perl logging facility.

Functions: Initialization

logInit
$PACKAGE->logInit()             ##-- use default configuration
$PACKAGE->logInit($file)        ##-- read configuration from a file
$PACKAGE->logInit(\$str)        ##-- read configuration from a string
$PACKAGE->logInit($file,$watch) ##-- watch configuration file

Initialize the logging facility.

All log calls in the 'DTA::TokWrap' namespace should use a subcategory of 'DTA::TokWrap'. This function only needs to be called once; see Log::Log4perl->initialized() for details.

ensureLog
PACKAGE->ensureLog()

Ensures that Log::Log4perl has been initialized.

logInitialized
$bool = CLASS_OR_OBJECT->logInitialized();

Wrapper for Log::Log4perl->initialized().

Methods: get logger

logger
$logger = $class_or_obj->logger();
$logger = $class_or_obj->logger($category)

Wrapper for Log::Log4perl::get_logger($category).

$category defaults to ref($class_or_obj)||$class_or_obj

Methods: messages

trace
debug
info
warn
error
fatal
$class_or_obj->trace (@msg);  ##-- 'TRACE'-level message
$class_or_obj->debug (@msg);  ##-- 'DEBUG'-level message
$class_or_obj->info  (@msg);  ##-- 'INFO'-level message
$class_or_obj->warn  (@msg);  ##-- 'WARN'-level message
$class_or_obj->error (@msg);  ##-- 'ERROR'-level message
$class_or_obj->fatal (@msg);  ##-- 'FATAL'-level message

Log messages at an explicit log-level.

Be sure you have called Log::Log4perl::init() or similar first, e.g. DTA::TokWrap::Logger::logInit().

llog
$class_or_obj->llog($level, @msg);

Log message @msg at log-level $level, which should be a (numeric) constant exported by Log::Log4perl::Level.

vlog
$class_or_obj->vlog($how, @msg);

Log message @msg at log-level $how, which may be one of the following:

  • a CODE reference (e.g. $how=\&logsub) will cause $how->($class_or_obj,@msg) to be called.

  • a method name (e.g. $how='trace') will case calls $class_or_obj->${how}(@msg) to be called.

  • anything else (e.g. $how='none', $how=undef, ...) will be ignored.

Methods: carp, croak & friends

logwarn
logcarp
logcluck
$class_or_obj->logwarn  (@msg);   ##-- warn w/o stack trace
$class_or_obj->logcarp  (@msg);   ##-- warn w/ 1-level stack trace
$class_or_obj->logcluck (@msg);   ##-- warn w/ full stack trace
logdie
logcroak
logconfess
$class_or_obj->logdie    (@msg);  ##-- die w/o stack trace
$class_or_obj->logcroak  (@msg);  ##-- die w/ 1-level stack trace
$class_or_obj->logconfess(@msg);  ##-- die w/ full stack trace

SEE ALSO

DTA::TokWrap::Intro(3pm), dta-tokwrap.perl(1), ...

SEE ALSO

DTA::TokWrap::Intro(3pm), dta-tokwrap.perl(1), ...

AUTHOR

Bryan Jurish <moocow@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2009-2018 by Bryan Jurish

This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.14.2 or, at your option, any later version of Perl 5 you may have available.