View on
MetaCPAN
Dale Amon > Fault-1.01-2 > Fault::DebugPrinter

Download:
Fault-1.01-2.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  1
Open  0
View/Report Bugs
Source  

NAME ^

 Fault::DebugPrinter - A Debug print controller with levels.

SYNOPSIS ^

 use Fault::DebugPrinter;
 $class_object = Fault::DebugPrinter->new   ($level);
 $class_object = $class_object->new         ($level);
 $class_object = Fault::DebugPrinter->new;
 $class_object = $class_object->new;
 $didprint     = Fault::DebugPrinter->dbg1  ($msg);
 $didprint     = $class_object->dbg1        ($msg);
 $didprint     = Fault::DebugPrinter->dbg   ($level,$msg);
 $didprint     = $class_object->dbg         ($level,$msg);
 $curlvl       = Fault::DebugPrinter->level ($level);
 $curlvl       = $class_object->level       ($level);
 $curlvl       = Fault::DebugPrinter->level;
 $curlvl       = $class_object->level;

Inheritance ^

 UNIVERSAL

Description ^

This Class does not have instance objects, only a single 'Class Object'. It is always referenced under the Class name. It supplies a simple mechanism for run time selection of how much Diagnostic message detail will be displayed. By setting the level to zero, all Diagnostic printouts are disabled. It can be used either in a mode that emulates a simple enable/disable of diagnostics or with multiple levels with more and more detail printed at each higher level. It is entirely at the user's discretion.

Examples ^

 use Fault::DebugPrinter;
 my $classobj      = Fault::DebugPrinter->new (1);

 my $didprint      = Fault::DebugPrinter->dbg1  ("This will print");
    $didprint      = Fault::DebugPrinter->dbg   (2, "This will not");

 my $curlvl        = Fault::DebugPrinter->level;
    $curlvl        = $classobj->level           ($curlvl+1); 
    $didprint      = Fault::DebugPrinter->dbg   (2, "This will now");

    $classobj      = Fault::DebugPrinter->new;
    $didprint      = Fault::DebugPrinter->dbg1  ("This is Disabled.");
    $curlvl        = Fault::DebugPrinter->level (1);
    $didprint      = Fault::DebugPrinter->dbg1  ("This is Enabled.");

Class Variables ^

 level        Highest level of Diagnostic message that will be printed.

Class Methods ^

$class_object = Fault::DebugPrinter->new ($level)
$class_object = $class_object->new ($level)
$class_object = Fault::DebugPrinter->new
$class_object = $class_object->new

Generate the DebugPrinter object if it doesn't already exist; otherwise just return the existing class object.

$level will turn diagnostic printing on for messages with a debug level above the specified it or off it is zero. If the argument is not present or undef the current level is set to zero so that, diagnostic printing is disabled.

$didprint = Fault::DebugPrinter->dbg1 ($msg)
$didprint = $class_object->dbg1 ($msg)

Single argument Diagnostic printer method. It prints $msg to stdout and returns true if the current debug level is greater than zero. If the $msg argument was missing or undef, it prints "<Null diagnostic message>" so you at least know it tried.

$didprint = Fault::DebugPrinter->dbg ($level,$msg)
$didprint = $class_object->dbg ($level,$msg)

Dual argument Diagnostic printer method. It prints $msg to stdout and returns true if the current debug level is greater than zero and at least equal to the integer value contained in $level. If the $level argument is missing or undef, it is defaulted to Level 1. If the $msg argument was missing or undef, it prints "<Null diagnostic message>" so you at least know it tried.

$curlvl = Fault::DebugPrinter->level ($level)
$curlvl = $class_object->level ($level)
$curlvl = Fault::DebugPrinter->level
$curlvl = $class_object->level

Set the current diagnostic level to $level. If the $level argument is missing or undef, the current level is unchanged. The no-argument format thus doubles as a 'read current diagnostic level' command.

Instance Methods ^

 None

Private Class Methods ^

 None.

Private Instance Methods ^

 None.

Errors and Warnings ^

 None.

KNOWN BUGS ^

 See TODO.

SEE ALSO ^

 None.

AUTHOR ^

Dale Amon <amon@vnl.com>

syntax highlighting: