File: log_lite_app.t

package info (click to toggle)
libmojolicious-perl 9.31%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 4,260 kB
  • sloc: perl: 10,139; makefile: 31; javascript: 1
file content (55 lines) | stat: -rw-r--r-- 2,103 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
use Mojo::Base -strict;

BEGIN { $ENV{MOJO_REACTOR} = 'Mojo::Reactor::Poll' }

use Test::More;
use Mojolicious::Lite;
use Mojo::Log;
use Test::Mojo;

hook before_dispatch => sub {
  my $c = shift;
  $c->req->request_id('17a60115');
};

get '/simple' => sub {
  my $c = shift;
  $c->log->debug('First!');
  $c->log->info('Second!', 'Third!');
  $c->app->log->debug('No context!');
  $c->log->warn(sub { 'Fourth!', 'Fifth!' });
  $c->render(text => 'Simple!');
};

my $t = Test::Mojo->new;

# Simple log messages with and without context
my $buffer = '';
open my $handle, '>', \$buffer;
$t->app->log(Mojo::Log->new(handle => $handle));
$t->get_ok('/simple')->status_is(200)->content_is('Simple!');
like $buffer, qr/First.*Second.*Third.*No context!.*Fourth.*Fifth/s,    'right order';
like $buffer, qr/\[.+\] \[\d+\] \[debug\] \[17a60115\] First!/,         'message with request id';
like $buffer, qr/\[.+\] \[\d+\] \[info\] \[17a60115\] Second! Third!/s, 'message with request id';
like $buffer, qr/\[.+\] \[\d+\] \[debug\] No context!/,                 'message without request id';
like $buffer, qr/\[.+\] \[\d+\] \[warn\] \[17a60115\] Fourth! Fifth!/s, 'message with request id';

# Concurrent requests
$buffer = '';
my $first = $t->app->build_controller;
$first->req->request_id('123-first');
my $second = $t->app->build_controller;
$second->req->request_id('123-second');
$first->log->debug('First!');
$second->log->debug('Second!');
$first->log->debug('Third!');
$second->log->debug('Fourth!');
$t->app->log->debug('Fifth!');
like $buffer, qr/First.*Second.*Third.*Fourth.*Fifth/s,            'right order';
like $buffer, qr/\[.+\] \[\d+\] \[debug\] \[123-first\] First!/,   'message with request id';
like $buffer, qr/\[.+\] \[\d+\] \[debug\] \[123-second\] Second!/, 'message with request id';
like $buffer, qr/\[.+\] \[\d+\] \[debug\] \[123-first\] Third!/,   'message with request id';
like $buffer, qr/\[.+\] \[\d+\] \[debug\] \[123-second\] Fourth!/, 'message with request id';
like $buffer, qr/\[.+\] \[\d+\] \[debug\] Fifth!/,                 'message without request id';

done_testing();