Logging for Perl6
Perl 6
Switch branches/tags
Nothing to show
Latest commit eab4b88 Apr 30, 2017 @jaffa4 committed on GitHub Merge pull request #2 from zoffixznet/patch-1
Use modern META filename
Failed to load latest commit information.
lib/Log got notify working Jul 21, 2015
t testing fix Jan 22, 2016
META6.json Use modern META filename Apr 25, 2017
README.md small modification Jul 21, 2015



The module provides support for logging. There are different type of logging: error, warning, debug, verbose, info and plain.

You create a log object, then you call methods e,w,d,v,i or p. Methods accept one argument, the logging message or two , section and message. Sections can be allowed or banned. Logging types can be enebled or disabled. The prefix of the log message can be given by a prefix function. Default output is $*ERR.


use Log::D;

my $f = Log::D.new(:w,:i); # create a new object , enable warning and infos

$f.prefix = sub { callframe(2).file~" "~callframe(2).line~" "~$*THREAD.id~" "~DateTime.now~" ";   }; #show line number of logging

$f.i("reached destructor");

$f.enable(:v); # let us enable verbose error messages too

$f.allow("engine func"); # if no allow is given, everything is allowed
$f.i("engine func", "engine starting");

$f.remove_allow("engine func"); # it is not longer allowed, if no allow left, all is turned on
$f.ban("low level func"); # or use ban, then it is not displayed for sure
$f.i("low level func", "print invoice");

$f.remove_ban("low level func"); # need to be able to remove it

$f.o = $*OUT; # change output of the log

use Log::Empty;
my $f = Log::Empty.new(:w,:i);   # all logging is off.. useful to replace Log::D with Log::Empty 

$f.notify = True;  # show bans, allows..etc in the log as well to track their usages