Commit | Line | Data |
3ccc9c47 |
1 | use strict; |
2 | use warnings; |
3 | |
4 | use Log::Contextual qw{:log with_logger set_logger}; |
5 | use Log::Contextual::SimpleLogger; |
6 | use Test::More qw(no_plan); |
7 | my $var1; |
8 | my $var2; |
9 | my $var3; |
10 | my $var_logger1 = Log::Contextual::SimpleLogger->new({ |
11 | levels => [qw(trace debug info warn error fatal)], |
12 | coderef => sub { $var1 = shift }, |
13 | }); |
14 | my $var_logger2; |
15 | BEGIN { |
16 | $var_logger2 = Log::Contextual::SimpleLogger->new({ |
17 | levels => [qw(trace debug info warn error fatal)], |
18 | coderef => sub { $var2 = shift }, |
19 | }) |
20 | } |
21 | |
22 | my $var_logger3; |
23 | BEGIN { |
24 | $var_logger3 = Log::Contextual::SimpleLogger->new({ |
25 | levels => [qw(trace debug info warn error fatal)], |
26 | coderef => sub { $var3 = shift }, |
27 | }) |
28 | } |
29 | |
30 | { |
31 | package J; |
32 | use Log::Contextual qw{:log with_logger set_logger}, -default_logger => $var_logger3; |
33 | |
34 | sub foo { |
35 | log_debug { 'bar' }; |
36 | } |
37 | } |
38 | |
39 | { |
40 | package K; |
41 | use Log::Contextual qw{:log with_logger set_logger}, -default_logger => $var_logger2; |
42 | |
43 | sub foo { |
44 | log_debug { 'foo' }; |
45 | } |
46 | } |
47 | J::foo; |
48 | K::foo; |
49 | |
50 | is($var2, "[debug] foo\n", 'default_logger works for one package'); |
51 | is($var3, "[debug] bar\n", 'default_logger works for both packages'); |
52 | $var2 = ''; |
53 | set_logger($var_logger1); |
54 | |
55 | K::foo; |
56 | is($var2, q(), '... but set_logger wins'); |
57 | is($var1, "[debug] foo\n", '... and gets the value'); |