Commit | Line | Data |
374a05c8 |
1 | package DBIx::Class::DeploymentHandler::LogRouter; |
97aa9a74 |
2 | |
374a05c8 |
3 | use Moo; |
4 | use DBIx::Class::DeploymentHandler::Logger; |
5 | |
6 | with 'Log::Contextual::Role::Router'; |
7 | |
8 | has _logger => ( |
9 | is => 'lazy', |
10 | builder => sub { DBIx::Class::DeploymentHandler::Logger->new }, |
11 | ); |
12 | |
13 | sub handle_log_request { |
14 | my ($self, %message_info) = @_; |
15 | |
16 | my $log_code_block = $message_info{message_sub}; |
17 | my $args = $message_info{message_args}; |
18 | my $log_level_name = $message_info{message_level}; |
19 | my $logger = $self->_logger; |
20 | my $is_active = $logger->can("is_${log_level_name}"); |
21 | |
22 | return unless defined $is_active && $logger->$is_active; |
23 | |
24 | my $log_message = $log_code_block->(@$args); |
25 | |
26 | $self->_logger->$log_level_name($log_message); |
27 | } |
28 | |
29 | sub before_import {} |
30 | sub after_import {} |
31 | |
32 | 1; |