NAME
Dancer2::Logger::Capture - Capture dancer logs
VERSION
version 1.1.2
SYNOPSIS
The basics:
set logger => "capture";my $trap = dancer_app->logger_engine->trapper;my $logs = $trap->read;
A worked-out real-world example:
use Test::More tests => 2;use Dancer2;set logger => 'capture';warning "Danger! Warning!";debug "I like pie.";my $trap = dancer_app->logger_engine->trapper;is_deeply $trap->read, [{ level => "warning", message => "Danger! Warning!" },{ level => "debug", message => "I like pie.", }];# each call to read cleans the trapis_deeply $trap->read, [];
DESCRIPTION
This is a logger class for Dancer2 which captures all logs to an object.
Its primary purpose is for testing. Here is an example of a test:
use strict;use warnings;use Test::More;use Plack::Test;use HTTP::Request::Common;use Ref::Util qw<is_coderef>;{package App;use Dancer2;set log => 'debug';set logger => 'capture';get '/' => sub {log(debug => 'this is my debug message');log(core => 'this should not be logged');log(info => 'this is my info message');};}my $app = Dancer2->psgi_app;ok( is_coderef($app), 'Got app' );test_psgi $app, sub {my $cb = shift;my $res = $cb->( GET '/' );my $trap = App->dancer_app->logger_engine->trapper;is_deeply $trap->read, [{ level => 'debug', message => 'this is my debug message' },{ level => 'info', message => 'this is my info message' },];is_deeply $trap->read, [];};done_testing;
METHODS
trapper
Returns the Dancer2::Logger::Capture::Trap object used to capture and read logs.
SEE ALSO
Dancer2::Core::Role::Logger, Dancer2::Logger::Capture::Trap
AUTHOR
Dancer Core Developers
COPYRIGHT AND LICENSE
This software is copyright (c) 2024 by Alexis Sukrieh.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.