|
From: Jim C. <jc...@di...> - 2003-05-30 22:22:36
|
Folks,
I humbly submit for your consideration.
=head1 NAME
Log::Log4perl::AutoCategorize - a Log4perl wrapper which uses your
package and subroutine names to create logging categories.
=head1 ABSTRACT
Log::Log4perl::AutoCategorize is a wrapper module for Log::Log4perl;
it provides a different interface for (what I perceive as) better
usability. I assume hereafter that youve read and understood its
documentation (hereafter referred to as baseclass or base)
There are several more mature alternatives which you should check out
for comparison;
#1. search for Stealth Loggers in base POD
use Log::Log4perl qw(:easy);
Log::Log4perl->easy_init($ERROR);
#2. new functionality, developed at approx same time as AutoCategorize
use Log::Log4perl::Filter;
=head1 SYNOPSIS
use Log::Log4perl::AutoCategorize
(
alias => 'Logger', # shorthand class-name alias
# easy init methods (std ones available too)
# maybe later (when base has #includes), 2nd will override 1st
initfile => $filename,
initstr => q{
log4perl.rootLogger=DEBUG, A1
# log4perl.appender.A1=Log::Dispatch::Screen
log4perl.appender.A1 = Log::Dispatch::File
log4perl.appender.A1.filename = ./mylog
log4perl.appender.A1.mode = write
log4perl.appender.A1.layout = PatternLayout
log4perl.appender.A1.layout.ConversionPattern=%d %c %m%n
# create COVERAGE log
log4perl.logger.Logger.END = INFO, COVERAGE
log4perl.appender.COVERAGE = Log::Dispatch::File
log4perl.appender.COVERAGE.filename = ./test-coverage.txt
log4perl.appender.COVERAGE.mode = write
log4perl.appender.COVERAGE.layout = org.apache.log4j.PatternLayout
log4perl.appender.COVERAGE.layout.ConversionPattern =
(%d{HH:mm:ss.SSS}) %c: %m%n
},
);
foreach (1..500) {
Logger->warn($_);
foo();
A->bar();
A::bar();
}
sub foo {
foreach (1..20) {
Logger->warn($_);
}
}
package A;
sub bar {
my @d;
foreach (1..20) {
push @d, $_;
Logger->warn($_,\@d);
}
}
|