Commit | Line | Data |
ad80a2d3 |
1 | use strictures 1; |
2 | use Test::More; |
3 | use Sys::Hostname; |
4 | |
5 | $ENV{OBJECT_REMOTE_TEST_LOGGER} = 1; |
6 | |
7 | use Object::Remote::Logging qw(:log router arg_levels); |
8 | use Object::Remote::Logging::Logger; |
9 | require 't/lib/ORFeedbackLogger.pm'; |
10 | |
11 | my $level_names = [qw(test1 test2 test3 test4 test5)]; |
12 | my $logger = Object::Remote::Logging::Logger->new( |
13 | level_names => $level_names, min_level => 'test1' |
14 | ); |
15 | |
16 | isa_ok($logger, 'Object::Remote::Logging::Logger'); |
17 | is($logger->max_level, 'test5', 'Logger sets max_level correctly'); |
18 | is($logger->format, '%l: %s', 'Default format is correct'); |
19 | foreach(@$level_names) { |
20 | is($logger->_level_active->{$_}, 1, "Level $_ is active"); |
21 | } |
22 | |
23 | $logger = Object::Remote::Logging::Logger->new( |
24 | level_names => $level_names, min_level => 'test3' |
25 | ); |
26 | |
27 | foreach(qw(test1 test2)) { |
28 | is($logger->_level_active->{$_}, 0, "Level $_ is inactive"); |
29 | } |
30 | |
31 | foreach(qw(test3 test4 test5)) { |
32 | is($logger->_level_active->{$_}, 1, "Level $_ is active"); |
33 | } |
34 | |
35 | is(render_log("%%")->[0], "%\n", "Percent renders correctly"); |
36 | is(render_log("%n")->[0], "\n", "New line renders correctly"); |
37 | is(render_log("%p")->[0], "main\n", "Package renders correctly"); |
38 | ok(defined render_log("%t")->[0], "There was a time value"); |
39 | is(render_log("%r")->[0], "local\n", "Remote info renders correctly"); |
40 | is(render_log("%s")->[0], "Test message\n", "Log message renders correctly"); |
41 | is(render_log("%l")->[0], "info\n", "Log level renders correctly"); |
42 | is(render_log("%c")->[0], "Object::Remote::Logging\n", "Log controller renders correctly"); |
43 | is(render_log("%p")->[0], "main\n", "Log generating package renders correctly"); |
44 | is(render_log("%m")->[0], "render_log\n", "Log generating method renders correctly"); |
45 | is(render_log("%f")->[0], __FILE__ . "\n", "Log generating filename renders correctly"); |
46 | my $ret = render_log("%i"); |
47 | is($ret->[0], $ret->[1] . "\n", "Log generating line number renders correctly"); |
48 | is(render_log("%h")->[0], hostname() . "\n", "Log generating hostname renders correctly"); |
49 | is(render_log("%P")->[0], "$$\n", "Log generating process id renders correctly"); |
50 | |
51 | done_testing; |
52 | |
53 | sub render_log { |
54 | my ($format)= @_; |
55 | $logger = ORFeedbackLogger->new( |
56 | format => $format, level_names => arg_levels(), min_level => 'info'); |
57 | my $selector= sub { $logger }; |
58 | router->connect($selector, 1); |
59 | log_info { "Test message" }; |
60 | return [$logger->feedback_output, __LINE__ - 1]; |
ad80a2d3 |
61 | } |