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


  # 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.


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.


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,


Will respond to any of the following ENV vars:


This means you can turn on debugging for as much, or as little as you like, without having to radically change the code.



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.


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.



Kent Fredric <>


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.