ensure that gross code will not creep in
[p5sagit/Log-Contextual.git] / t / default_logger.t
CommitLineData
3ccc9c47 1use strict;
2use warnings;
3
4use Log::Contextual qw{:log with_logger set_logger};
5use Log::Contextual::SimpleLogger;
6use Test::More qw(no_plan);
7my $var1;
8my $var2;
9my $var3;
10my $var_logger1 = Log::Contextual::SimpleLogger->new({
489f71b2 11 levels => [qw(trace debug info warn error fatal)],
12 coderef => sub { $var1 = shift },
3ccc9c47 13});
14my $var_logger2;
6ae293d7 15
3ccc9c47 16BEGIN {
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
23my $var_logger3;
6ae293d7 24
3ccc9c47 25BEGIN {
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}
57J::foo;
58K::foo;
59
60is($var2, "[debug] foo\n", 'default_logger works for one package');
61is($var3, "[debug] bar\n", 'default_logger works for both packages');
d11de6ae 62J::bar;
63is($var3, qq([debug] bar: "frew"\n), 'default_logger works for one package');
3ccc9c47 64$var2 = '';
65set_logger($var_logger1);
66
67K::foo;
6ae293d7 68is($var2, q(), '... but set_logger wins');
3ccc9c47 69is($var1, "[debug] foo\n", '... and gets the value');