File: 012-handler-message-pattern.t

package info (click to toggle)
liblog-handler-perl 0.45-1%2Blenny1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 392 kB
  • ctags: 145
  • sloc: perl: 2,017; makefile: 39
file content (53 lines) | stat: -rw-r--r-- 1,015 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
use strict;
use warnings;
use Test::More tests => 15;
use Log::Handler;

my $CHECKED = 0;
my %PATTERN = (
    '%L' => 'level',
    '%T' => 'time',
    '%D' => 'date',
    '%P' => 'pid',
    '%H' => 'hostname',
    '%C' => 'caller',
    '%p' => 'package',
    '%f' => 'filename',
    '%l' => 'line',
    '%s' => 'subroutine',
    '%S' => 'progname',
    '%r' => 'runtime',
    '%t' => 'mtime',
    '%m' => 'message',
);

my %PATTERN_REC = map { $_ => 0 } values %PATTERN;

sub check_struct {
    my $m = shift;
    foreach my $name (keys %$m) {
        if (exists $PATTERN_REC{$name}) {
            $PATTERN_REC{$name}++;
        }
    }
}

my $log = Log::Handler->new();

$log->add(
    forward => {
        forward_to      => \&check_struct,
        maxlevel        => 'debug',
        minlevel        => 'debug',
        message_layout  => '',
        message_pattern => [ keys %PATTERN ],
    }
);

ok(1, 'new');

$log->debug('foo');

while ( my ($n, $v) = each %PATTERN_REC ) {
    ok($v, "test pattern $n");
}