PATH:
usr
/
local
/
share
/
perl5
/
Log
package Log::NullLogLite; use strict; use vars qw($VERSION @ISA); $VERSION = 0.82; # According to the Null pattern. # # Log::NullLogLite inherits from Log::LogLite and implement the Null # Object Pattern. use Log::LogLite; @ISA = ("Log::LogLite"); package Log::NullLogLite; use strict; ########################################## # new($filepath) # new($filepath,$level) # new($filepath,$level,$default_message) ########################################## # the constructor sub new { my $proto = shift; # get the class name my $class = ref($proto) || $proto; my $self = {}; bless ($self, $class); return $self; } # of new ######################## # write($message, $level) ######################## # will log the message in the log file only if $level>=LEVEL sub write { my $self = shift; } # of write ########################## # level() # level($level) ########################## # an interface to LEVEL sub level { my $self = shift; return -1; } # of level ########################### # default_message() # default_message($message) ########################### # an interface to DEFAULT_MESSAGE sub default_message { my $self = shift; return ""; } # of default_message 1; __END__ ############################################################################ =head1 NAME Log::NullLogLite - The C<Log::NullLogLite> class implements the Null Object pattern for the C<Log::LogLite> class. =head1 SYNOPSIS use Log::NullLogLite; # create new Log::NullLogLite object my $log = new Log::NullLogLite(); ... # we had an error (this entry will not be written to the log # file because we use Log::NullLogLite object). $log->write("Could not open the file ".$file_name.": $!", 4); =head1 DESCRIPTION The C<Log::NullLogLite> class is derived from the C<Log::LogLite> class and implement the Null Object Pattern to let us to use the C<Log::LogLite> class with B<null> C<Log::LogLite> objects. We might want to do that if we use a C<Log::LogLite> object in our code, and we do not want always to actually define a C<Log::LogLite> object (i.e. not always we want to write to a log file). In such a case we will create a C<Log::NullLogLite> object instead of the C<Log::LogLite> object, and will use that object instead. The object has all the methods that the C<Log::LogLite> object has, but those methods do nothing. Thus our code will continue to run without any change, yet we will not have to define a log file path for the C<Log::LogLite> object, and no log will be created. =head1 CONSTRUCTOR =over 4 =item new ( FILEPATH [,LEVEL [,DEFAULT_MESSAGE ]] ) The constructor. The parameters will not have any affect. Returns the new Log::NullLogLite object. =back =head1 METHODS =over 4 =item write( MESSAGE [, LEVEL ] ) Does nothing. The parameters will not have any affect. Returns nothing. =item level( [ LEVEL ] ) Does nothing. The parameters will not have any affect. Returns -1. =item default_message( [ MESSAGE ] ) Does nothing. The parameters will not have any affect. Returns empty string (""). =head1 AUTHOR Rani Pinchuk, rani@cpan.org =head1 COPYRIGHT Copyright (c) 2001-2002 Ockham Technology N.V. & Rani Pinchuk. All rights reserved. This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO L<Log::LogLite(3)>, The Null Object Pattern - Bobby Woolf - PLoP96 - published in Pattern Languages of Program Design 3 (http://cseng.aw.com/book/0,,0201310112,00.html) =cut
[-] LogLite.pm
[edit]
[+]
..
[-] NullLogLite.pm
[edit]