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({ |
489f71b2 |
11 | levels => [qw(trace debug info warn error fatal)], |
12 | coderef => sub { $var1 = shift }, |
3ccc9c47 |
13 | }); |
14 | my $var_logger2; |
6ae293d7 |
15 | |
3ccc9c47 |
16 | BEGIN { |
17 | $var_logger2 = Log::Contextual::SimpleLogger->new({ |
6ae293d7 |
18 | levels => [qw(trace debug info warn error fatal)], |
19 | coderef => sub { $var2 = shift }, |
20 | }) |
3ccc9c47 |
21 | } |
22 | |
23 | my $var_logger3; |
6ae293d7 |
24 | |
3ccc9c47 |
25 | BEGIN { |
26 | $var_logger3 = Log::Contextual::SimpleLogger->new({ |
6ae293d7 |
27 | levels => [qw(trace debug info warn error fatal)], |
28 | coderef => sub { $var3 = shift }, |
29 | }) |
3ccc9c47 |
30 | } |
31 | |
32 | { |
6ae293d7 |
33 | |
3ccc9c47 |
34 | package J; |
6ae293d7 |
35 | use Log::Contextual qw{:dlog :log with_logger set_logger}, |
36 | -default_logger => $var_logger3; |
3ccc9c47 |
37 | |
38 | sub foo { |
39 | log_debug { 'bar' }; |
40 | } |
6ae293d7 |
41 | |
d11de6ae |
42 | sub bar { |
43 | Dlog_debug { "bar: $_" } 'frew'; |
44 | } |
3ccc9c47 |
45 | } |
46 | |
47 | { |
6ae293d7 |
48 | |
3ccc9c47 |
49 | package K; |
6ae293d7 |
50 | use Log::Contextual qw{:log with_logger set_logger}, |
51 | -default_logger => $var_logger2; |
3ccc9c47 |
52 | |
53 | sub foo { |
54 | log_debug { 'foo' }; |
55 | } |
56 | } |
57 | J::foo; |
58 | K::foo; |
59 | |
60 | is($var2, "[debug] foo\n", 'default_logger works for one package'); |
61 | is($var3, "[debug] bar\n", 'default_logger works for both packages'); |
d11de6ae |
62 | J::bar; |
63 | is($var3, qq([debug] bar: "frew"\n), 'default_logger works for one package'); |
3ccc9c47 |
64 | $var2 = ''; |
65 | set_logger($var_logger1); |
66 | |
67 | K::foo; |
6ae293d7 |
68 | is($var2, q(), '... but set_logger wins'); |
3ccc9c47 |
69 | is($var1, "[debug] foo\n", '... and gets the value'); |