NAME

Acme::Beamerang::Logger - A Simple per-class clan warnlogger loader

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.

DESCRIPTION

This class is a convenience layer to tie Log::Contextual::WarnLogger::Fancy into the Acme::Beamerang project space.

This is very experiemental and is a research project ( hence Acme:: ).

This would otherwise be part of the other 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 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.

ENVIRONMENT

This module utilizes the env_prefix and group_env_prefix of Log::Contextual::WarnLogger::Fancy to generate a collection of 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 BEAMERANG_$LOG_LEVEL and BEAMERANG_UPTO values.

Every package beginning with either Acme::Beamerang:: or Beamerang:: will additionally respond to a collection of namespace oriented ENV variables.

For instance,

  Acme::Beamerang::Foo::Bar::Baz

Will respond to any of the following 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.

NAMING

Acme

Firstly, this is named 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 Beamerang:: ... maybe.

Beamerang

This is my dumb joke based on Beam, which this compontent is going to end up being used in conjunction with.

I thought at first Beam -> Boom, but then that was too high level.

And then I thought Boomerang .... but eh, I didn't like that either.

So Beamerang is a mutant hybrid of the above.

Other parts of this system that have yet to manifest will use the same convention.

SEE ALSO

AUTHOR

Kent Fredric <kentnl@cpan.org>

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.