fix caller_level passed to coderef, document both uses
[p5sagit/Log-Contextual.git] / t / caller.t
1 use strict;
2 use warnings;
3
4 use Log::Contextual::SimpleLogger;
5 use Test::More qw(no_plan);
6 use Log::Contextual qw(:log set_logger);
7 my $var;
8 my @caller_info;
9 my $var_log = Log::Contextual::SimpleLogger->new({
10    levels  => [qw(trace debug info warn error fatal)],
11    coderef => sub { chomp($_[0]); $var = "$_[0] at $caller_info[1] line $caller_info[2].\n" }
12 });
13 my $warn_faker = sub {
14    my ($package, $args) = @_;
15    @caller_info = caller($args->{caller_level});
16    $var_log
17 };
18 set_logger($warn_faker);
19 log_debug { 'test' };
20 is($var, "[debug] test at " . __FILE__ . " line " . (__LINE__-1) . ".\n", 'fake warn');