File Coverage

blib/lib/Thunderhorse/Module/Logger.pm
Criterion Covered Total %
statement 39 39 100.0
branch n/a
condition n/a
subroutine 9 9 100.0
pod 1 1 100.0
total 49 49 100.0


line stmt bran cond sub pod time code
1             package Thunderhorse::Module::Logger;
2             $Thunderhorse::Module::Logger::VERSION = '0.102';
3 1     1   886 use v5.40;
  1         6  
4 1     1   10 use Mooish::Base -standard;
  1         2  
  1         14  
5              
6 1     1   21073 use Gears::X::Thunderhorse;
  1         2  
  1         47  
7 1     1   839 use Gears::Logger::Handler;
  1         1666  
  1         106  
8              
9 1     1   12 use Future::AsyncAwait;
  1         3  
  1         12  
10              
11             extends 'Thunderhorse::Module';
12              
13             has field 'logger' => (
14             isa => InstanceOf ['Gears::Logger'],
15             lazy => 1,
16             );
17              
18             sub _build_logger ($self)
19 1     1   15 {
  1         3  
  1         2  
20 1         10 my $config = $self->config;
21              
22 1         14 return Gears::Logger::Handler->new($config->%*);
23             }
24              
25             sub build ($self)
26 1     1 1 10359 {
  1         3  
  1         2  
27 1         3 weaken $self;
28 1         36 my $logger = $self->logger;
29              
30 3         6 $self->add_method(
31 3     3   6 controller => log => sub ($controller, $level, @messages) {
  3         6  
  3         7  
  3         4  
32 3         26 $logger->message($level, @messages);
33 3         4217 return $controller;
34             }
35 1         5811 );
36              
37 1         2 $self->add_hook(
38 1     1   2 error => sub ($controller, $ctx, $error) {
  1         3  
  1         2  
  1         3  
39 1         7 $logger->message(error => $error);
40             }
41 1         42 );
42             }
43              
44             __END__