line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package POE::Component::Log4perl; |
2
|
|
|
|
|
|
|
|
3
|
2
|
|
|
2
|
|
241434
|
use 5.008; |
|
2
|
|
|
|
|
9
|
|
|
2
|
|
|
|
|
86
|
|
4
|
2
|
|
|
2
|
|
14
|
use strict; |
|
2
|
|
|
|
|
3
|
|
|
2
|
|
|
|
|
80
|
|
5
|
2
|
|
|
2
|
|
29
|
use warnings; |
|
2
|
|
|
|
|
4
|
|
|
2
|
|
|
|
|
81
|
|
6
|
|
|
|
|
|
|
|
7
|
2
|
|
|
2
|
|
1036
|
use POE; |
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
8
|
|
|
|
|
|
|
use Log::Log4perl; |
9
|
|
|
|
|
|
|
use Log::Log4perl::Level; |
10
|
|
|
|
|
|
|
|
11
|
|
|
|
|
|
|
# ------------------------------------------------------------------------ |
12
|
|
|
|
|
|
|
|
13
|
|
|
|
|
|
|
our $VERSION = '0.03'; |
14
|
|
|
|
|
|
|
our $level = $INFO; |
15
|
|
|
|
|
|
|
|
16
|
|
|
|
|
|
|
# ------------------------------------------------------------------------ |
17
|
|
|
|
|
|
|
|
18
|
|
|
|
|
|
|
sub spawn { |
19
|
|
|
|
|
|
|
my $class = shift; |
20
|
|
|
|
|
|
|
|
21
|
|
|
|
|
|
|
POE::Session->create( |
22
|
|
|
|
|
|
|
inline_states => { |
23
|
|
|
|
|
|
|
_start => \&start_logger, |
24
|
|
|
|
|
|
|
_stop => \&stop_logger, |
25
|
|
|
|
|
|
|
info => sub { local $level = $INFO; poe_logger(@_) }, |
26
|
|
|
|
|
|
|
debug => sub { local $level = $DEBUG; poe_logger(@_) }, |
27
|
|
|
|
|
|
|
warn => sub { local $level = $WARN; poe_logger(@_) }, |
28
|
|
|
|
|
|
|
error => sub { local $level = $ERROR; poe_logger(@_) }, |
29
|
|
|
|
|
|
|
fatal => sub { local $level = $FATAL; poe_logger(@_) }, |
30
|
|
|
|
|
|
|
trace => sub { local $level = $TRACE; poe_logger(@_) }, |
31
|
|
|
|
|
|
|
category => sub { |
32
|
|
|
|
|
|
|
my ($heap, $arg0) = @_[HEAP,ARG0]; |
33
|
|
|
|
|
|
|
$heap->{_category} = $arg0; |
34
|
|
|
|
|
|
|
}, |
35
|
|
|
|
|
|
|
}, |
36
|
|
|
|
|
|
|
args => [@_ ], |
37
|
|
|
|
|
|
|
); |
38
|
|
|
|
|
|
|
|
39
|
|
|
|
|
|
|
} |
40
|
|
|
|
|
|
|
|
41
|
|
|
|
|
|
|
sub start_logger { |
42
|
|
|
|
|
|
|
my ($kernel, $heap, %args) = @_[KERNEL, HEAP, ARG0 .. $#_]; |
43
|
|
|
|
|
|
|
|
44
|
|
|
|
|
|
|
Log::Log4perl::init_once($args{ConfigFile}); |
45
|
|
|
|
|
|
|
$Log::Log4perl::caller_depth = 1; |
46
|
|
|
|
|
|
|
*{main::get_logfile} = $args{GetLogfile} if (defined($args{GetLogfile})); |
47
|
|
|
|
|
|
|
|
48
|
|
|
|
|
|
|
$heap->{_alias} = $args{Alias} || 'logger'; |
49
|
|
|
|
|
|
|
$heap->{_category} = $args{Category}; |
50
|
|
|
|
|
|
|
|
51
|
|
|
|
|
|
|
$kernel->alias_set($args{Alias}); |
52
|
|
|
|
|
|
|
|
53
|
|
|
|
|
|
|
} |
54
|
|
|
|
|
|
|
|
55
|
|
|
|
|
|
|
sub stop_logger { |
56
|
|
|
|
|
|
|
my ($kernel, $heap) = @_[KERNEL, HEAP]; |
57
|
|
|
|
|
|
|
|
58
|
|
|
|
|
|
|
$kernel->alias_remove($heap->{_alias}); |
59
|
|
|
|
|
|
|
delete $heap->{_alias}; |
60
|
|
|
|
|
|
|
|
61
|
|
|
|
|
|
|
} |
62
|
|
|
|
|
|
|
|
63
|
|
|
|
|
|
|
sub poe_logger { |
64
|
|
|
|
|
|
|
my ($heap, $arg0, @args) = @_[HEAP, ARG0, ARG1 .. $#_]; |
65
|
|
|
|
|
|
|
|
66
|
|
|
|
|
|
|
my $message; |
67
|
|
|
|
|
|
|
my $log = Log::Log4perl->get_logger($heap->{_category}); |
68
|
|
|
|
|
|
|
|
69
|
|
|
|
|
|
|
if (ref($arg0)) { |
70
|
|
|
|
|
|
|
|
71
|
|
|
|
|
|
|
$log->log(%$arg0); |
72
|
|
|
|
|
|
|
|
73
|
|
|
|
|
|
|
} else { |
74
|
|
|
|
|
|
|
|
75
|
|
|
|
|
|
|
$message = join("", $arg0, @args); |
76
|
|
|
|
|
|
|
$log->log($level, $message); |
77
|
|
|
|
|
|
|
|
78
|
|
|
|
|
|
|
} |
79
|
|
|
|
|
|
|
|
80
|
|
|
|
|
|
|
} |
81
|
|
|
|
|
|
|
|
82
|
|
|
|
|
|
|
1; |
83
|
|
|
|
|
|
|
|
84
|
|
|
|
|
|
|
__END__ |