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;