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