| Log-Agent documentation | Contained in the Log-Agent distribution. |
Log::Agent::Tag_List - user-defined tags to add to every log
use Log::Agent qw(logtags); my $taglist = logtags(); $taglist->append(@tags); # adds @tags at the tail of list $taglist->prepend(@tags); # adds @tags at the head of list
This class handles the list of user-defined tags, which are added to
each log message. The initial list is taken from the -tags argument
of the logconfig() routine. See Log::Agent(3).
The following interface is available:
Append list of Log::Agent::Tag objects to the existing list.
Prepends list of Log::Agent::Tag objects to the existing list.
Raphael Manfredi <Raphael_Manfredi@pobox.com>
Log::Agent(3), Log::Agent::Tag(3).
| Log-Agent documentation | Contained in the Log-Agent distribution. |
# # $Id: Tag_List.pm,v 1.1 2002/03/09 16:01:37 wendigo Exp $ # # Copyright (c) 1999, Raphael Manfredi # # You may redistribute only under the terms of the Artistic License, # as specified in the README file that comes with the distribution. # # HISTORY # $Log: Tag_List.pm,v $ # Revision 1.1 2002/03/09 16:01:37 wendigo # New maintainer # # Revision 0.2.1.1 2001/03/13 18:45:22 ram # patch2: created # # Revision 0.2 2000/11/06 19:30:33 ram # Baseline for second Alpha release. # # $EndLog$ # use strict; ######################################################################## package Log::Agent::Tag_List; require Tie::Array; # contains Tie::StdArray use vars qw(@ISA); @ISA = qw(Tie::StdArray); # # A list of all log message tags recorded, with dedicated methods to # manipulate them. # # # ->make # # Creation routine. # sub make { my $self = bless [], shift; my (@tags) = @_; @$self = @tags; return $self; } # # _typecheck # # Make sure only objects of the proper type are given in the list. # Croaks when type checking detects an error. # sub _typecheck { my $self = shift; my ($type, $list) = @_; my @bad = grep { !ref $_ || !$_->isa($type) } @$list; return unless @bad; my $first = $bad[0]; require Carp; Carp::croak(sprintf "Expected list of $type, got %d bad (first one is $first)", scalar(@bad)); } # # ->append # # Append list of Log::Agent::Tag objects to current list. # sub append { my $self = shift; my (@tags) = @_; $self->_typecheck("Log::Agent::Tag", \@tags); push @$self, @tags; } # # ->prepend # # Prepend list of Log::Agent::Tag objects to current list. # sub prepend { my $self = shift; my (@tags) = @_; $self->_typecheck("Log::Agent::Tag", \@tags); unshift @$self, @tags; } 1; # for require __END__