1 package DBIx::Class::DeploymentHandler::LogRouter;
3 use DBIx::Class::DeploymentHandler::Logger;
5 with 'Log::Contextual::Role::Router';
9 builder => sub { DBIx::Class::DeploymentHandler::Logger->new },
12 sub handle_log_request {
13 my ($self, %message_info) = @_;
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}");
21 return unless defined $is_active && $logger->$is_active;
23 my $log_message = $log_code_block->(@$args);
25 $self->_logger->$log_level_name($log_message);