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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
#!/usr/bin/perl
use strict;
use warnings;
use Log::Handler;
use Benchmark;
my $BUFFER;
sub buffer {
$BUFFER .= shift->{message};
}
my $log = Log::Handler->new();
$log->add(
forward => {
alias => 'complex',
maxlevel => 'info',
minlevel => 'info',
forward_to => \&buffer,
message_layout => '%T [%L] %H(%P) %m (%C)%N',
}
);
$log->add(
forward => {
alias => 'simple',
maxlevel => 'notice',
minlevel => 'notice',
newline => 1,
forward_to => \&buffer,
message_layout => '%L - %m',
}
);
$log->add(
forward => {
alias => 'default & suppressed',
maxlevel => 'warning',
minlevel => 'warning',
newline => 1,
forward_to => \&buffer,
}
);
$log->add(
forward => {
alias => 'pattern',
maxlevel => 'error',
minlevel => 'error',
newline => 1,
forward_to => \&buffer,
message_layout => '%m',
message_pattern => [qw/%T %L %P/],
}
);
my $count = 100_000;
my $time = ();
$time = timeit($count, sub { $log->info('foo') });
print "$count loops for a complex output took: ", timestr($time) ,"\n";
undef $BUFFER;
$time = timeit($count, sub { $log->notice('foo') });
print "$count loops for a simple output took: ", timestr($time) ,"\n";
undef $BUFFER;
$time = timeit($count, sub { $log->debug('foo') }); # debug will not be logged
print "$count loops for a suppressed output took:", timestr($time) ,"\n";
undef $BUFFER;
$time = timeit($count, sub { $log->warning('foo') });
print "$count loops for a default output took: ", timestr($time) ,"\n";
undef $BUFFER;
$time = timeit($count, sub { $log->error('foo') });
print "$count loops for a pattern output took: ", timestr($time) ,"\n";
undef $BUFFER;
|