1 package DBIx::Class::DeploymentHandler::LogRouter;
4 use DBIx::Class::DeploymentHandler::Logger;
6 with 'Log::Contextual::Role::Router';
10 builder => sub { DBIx::Class::DeploymentHandler::Logger->new },
13 sub handle_log_request {
14 my ($self, %message_info) = @_;
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}");
22 return unless defined $is_active && $logger->$is_active;
24 my $log_message = $log_code_block->(@$args);
26 $self->_logger->$log_level_name($log_message);