Acme-Beamerang-Logger
view release on metacpan or search on metacpan
lib/Acme/Beamerang/Logger.pm view on Meta::CPAN
label => $caller,
label_length => 21,
default_upto => 'warn',
}
);
}
1;
=head1 NAME
Acme::Beamerang::Logger - A Simple per-class clan warnlogger loader
=head1 SYNOPSIS
# Interface is basically the same as Log::Contextual::Easy::Default
use Acme::Beamerang::Logger; # imports :dlog and :log by default
# also assigns a default logger to the package.
=head1 DESCRIPTION
This class is a convenience layer to tie L<Log::Contextual::WarnLogger::Fancy>
into the C<Acme::Beamerang> project space.
This is very experiemental and is a research project ( hence C<Acme::> ).
This would otherwise be part of the other C<Acme::Beamerang> things that are still yet to
materialise, but the inversion control this project entails means directly coupling
this component with either of those parts would lead to a dependency graph that would
defeat the point of the control inversion.
This tool otherwise loads up C<Log::Contextual> with a nice default logger, with all the glue
in place to be convenient for this project, while still having an open door to a real logger.
=head1 ENVIRONMENT
This module utilizes the C<env_prefix> and C<group_env_prefix> of L<Log::Contextual::WarnLogger::Fancy>
to generate a collection of C<ENV> vars for narrow or broad incision of logging statements without need
to use more complex logging technology.
Every package that uses this logger will respond to C<BEAMERANG_$LOG_LEVEL> and C<BEAMERANG_UPTO> values.
Every package beginning with either C<Acme::Beamerang::> or C<Beamerang::> will additionally respond to
a collection of namespace oriented C<ENV> variables.
For instance,
Acme::Beamerang::Foo::Bar::Baz
Will respond to any of the following C<ENV> vars:
BEAMERANG_FOO_BAR_BAZ_$LEVEL
BEAMERANG_FOO_BAR_$LEVEL
BEAMERANG_FOO_$LEVEL
BEAMERANG_$LEVEL
BEAMERNAG_FOO_BAR_BAZ_UPTO
BEAMERANG_FOO_BAR_UPTO
BEAMERANG_FOO_UPTO
BEAMERANG_UPTO
This means you can turn on debugging for as much, or as little as you like, without
having to radically change the code.
=head1 NAMING
=head2 Acme
Firstly, this is named C<Acme::>, because its a bunch of bad ideas glued together, and I
don't want people to use this until its "ready", but I'm going to need to use it lots before I get comfortable
anything right is done.
When its ready (if ever), it will ship as C<Beamerang::> ... maybe.
=head2 Beamerang
This is my dumb joke based on C<Beam>, which this compontent is going to end up being used in conjunction with.
I thought at first C<Beam> -> C<Boom>, but then that was too high level.
And then I thought C<Boomerang> .... but eh, I didn't like that either.
So C<Beamerang> is a mutant hybrid of the above.
Other parts of this system that have yet to manifest will use the same convention.
=head1 SEE ALSO
=over 4
=item * L<< C<Log::Contextual::Easy::Default>|Log::Contextual::Easy::Default >> - Interface is otherwise identical to this
module, only the default logger in choice and its configuration differs.
=back
=head1 AUTHOR
Kent Fredric <kentnl@cpan.org>
=head1 LICENSE
This software is copyright (c) 2016 by Kent Fredric.
This is free software; you can redistribute it and/or modify it under the
same terms as the Perl 5 programming language system itself.
=cut
( run in 2.270 seconds using v1.01-cache-2.11-cpan-ceb78f64989 )