1Dancer2::Logger::CapturUes(e3r)Contributed Perl DocumentDaatnicoenr2::Logger::Capture(3)
2
3
4
6 Dancer2::Logger::Capture - Capture dancer logs
7
9 version 0.400001
10
12 The basics:
13
14 set logger => "capture";
15
16 my $trap = dancer_app->logger_engine->trapper;
17 my $logs = $trap->read;
18
19 A worked-out real-world example:
20
21 use Test::More tests => 2;
22 use Dancer2;
23
24 set logger => 'capture';
25
26 warning "Danger! Warning!";
27 debug "I like pie.";
28
29 my $trap = dancer_app->logger_engine->trapper;
30
31 is_deeply $trap->read, [
32 { level => "warning", message => "Danger! Warning!" },
33 { level => "debug", message => "I like pie.", }
34 ];
35
36 # each call to read cleans the trap
37 is_deeply $trap->read, [];
38
40 This is a logger class for Dancer2 which captures all logs to an
41 object.
42
43 Its primary purpose is for testing. Here is an example of a test:
44
45 use strict;
46 use warnings;
47 use Test::More;
48 use Plack::Test;
49 use HTTP::Request::Common;
50 use Ref::Util qw<is_coderef>;
51
52 {
53 package App;
54 use Dancer2;
55
56 set log => 'debug';
57 set logger => 'capture';
58
59 get '/' => sub {
60 log(debug => 'this is my debug message');
61 log(core => 'this should not be logged');
62 log(info => 'this is my info message');
63 };
64 }
65
66 my $app = Dancer2->psgi_app;
67 ok( is_coderef($app), 'Got app' );
68
69 test_psgi $app, sub {
70 my $cb = shift;
71
72 my $res = $cb->( GET '/' );
73
74 my $trap = App->dancer_app->logger_engine->trapper;
75
76 is_deeply $trap->read, [
77 { level => 'debug', message => 'this is my debug message' },
78 { level => 'info', message => 'this is my info message' },
79 ];
80
81 is_deeply $trap->read, [];
82 };
83
84 done_testing;
85
87 trapper
88 Returns the Dancer2::Logger::Capture::Trap object used to capture and
89 read logs.
90
92 Dancer2::Core::Role::Logger, Dancer2::Logger::Capture::Trap
93
95 Dancer Core Developers
96
98 This software is copyright (c) 2023 by Alexis Sukrieh.
99
100 This is free software; you can redistribute it and/or modify it under
101 the same terms as the Perl 5 programming language system itself.
102
103
104
105perl v5.38.0 2023-07-20 Dancer2::Logger::Capture(3)