| ubertext documentation | Contained in the ubertext distribution. |
Text::UberText::Log - Record of UberText processing
$uber=Text::UberText->new();
$log=$uber->log();
$log->write("Dispatch","Object load failure",,"ERROR");
$log->list();
Text::UberText::Log is used to debug the parsing of UberText documents. The Parser, the Dispatch table, and other modules record informational or warning messages to the log.
Writes a message to the log object. Module generically refers to which UberText module is reporting the error, but it can also be more generic or specific to suit the needs of the implementor. Message is a verbose description of the event. Linenumber indicates at what line of the document the error occured (if it occured during parsing). Severity refers to the level of importance of the message, and could be set to either "DEBUG", "INFO", or "ERROR".
Lists all log messages matching the severity level specified, or lists all messages if no severity level is specified.
This is the simplest module in the UberText distribution.
Chris Josephes <cpj1@visi.com>
Copyright 2002, Chris Josephes. All rights reserved. This module is free software. It may be used, redistributed, and/or modified under the same terms as Perl itself. ~
| ubertext documentation | Contained in the ubertext distribution. |
# # Package Definition # package Text::UberText::Log; # # Compiler Directives # use strict; use warnings; # # Includes # use Text::Wrap; # # Global Variables # use vars qw/$VERSION /; $VERSION=0.95; $Text::Wrap::columns=72; # # Methods # sub new { my ($class)=shift; my ($object); $object={}; bless ($object,$class); $object->_init(@_); return $object; } sub write { my ($self)=shift; if (@_) { my ($module,$message,$line,$severity)=@_; $self->{log}->[$self->{last}]->{module}=$module; $self->{log}->[$self->{last}]->{message}=$message; $self->{log}->[$self->{last}]->{line}=$line; $self->{log}->[$self->{last}]->{severity}=$severity; $self->{last}++; } return; } sub list { my ($self)=shift; my ($fmt)="%s.%s: %s at line %d\n"; if (@{$self->{log}}) { my ($entry); foreach $entry (@{$self->{log}}) { printf($fmt,$entry->{module},$entry->{severity}, $entry->{message},$entry->{line}); } } return; } sub report { my ($self)=shift; if (@{$self->{log}}) { my ($entry); print("\n"); foreach $entry (@{$self->{log}}) { print($entry->{module}.":".$entry->{line},"\n"); print(wrap(" "," ", $entry->{severity}.":".$entry->{message}),"\n"); } } return; } # # Hidden Methods # sub _init { my ($self)=shift; $self->{log}=[]; $self->{last}=0; return; } # # Exit Block # 1; # # POD Documentation #