package App::LogAnyAdapter; # from ChatGPT session - see documents/LAA-ChatGPT.txt # this is from ChatGPT session but function works OK without it: # use Dancer2 (); # load but don’t import the DSL use App::Class; use Data::Printer; use Log::Any::Adapter; sub init { Log::Any::Adapter->set( Capture => min_level => 'debug', to => sub ($method, $self, $format, @params) { my $msg = @params ? sprintf($format, @params) : $format; # Find the first registered Dancer2 app, or If multiple D2 apps # in one process, filter `Dancer2->runner->apps` by app name my ($app) = @{ Dancer2->runner->apps } or return; # Skip Log::Any frames so caller points to your model code my (undef, $file, $line) = caller(3); $app->logger_engine->log( $method => $msg, caller => [$file, $line], ); }, ); } 1;