Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package perl-Mojolicious for openSUSE:Factory checked in at 2021-08-11 11:47:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Mojolicious (Old) and /work/SRC/openSUSE:Factory/.perl-Mojolicious.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Mojolicious" Wed Aug 11 11:47:26 2021 rev:160 rq:911297 version:9.20 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Mojolicious/perl-Mojolicious.changes 2021-06-02 22:12:18.860142099 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Mojolicious.new.1899/perl-Mojolicious.changes 2021-08-11 11:49:19.125594829 +0200 @@ -1,0 +2,11 @@ +Tue Aug 10 03:07:42 UTC 2021 - Tina M??ller <timueller+p...@suse.de> + +- updated to 9.20 + see /usr/share/doc/packages/perl-Mojolicious/Changes + + 9.20 2021-08-09 + - Added trace log level to Mojo::Log. + - Changed default log level in Mojo::Log from "debug" to "trace" and moved all built-in "debug" log messages to the + level "trace". That will allow for the "debug" level to be used exclusively for user defined log messages. + +------------------------------------------------------------------- Old: ---- Mojolicious-9.19.tar.gz New: ---- Mojolicious-9.20.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Mojolicious.spec ++++++ --- /var/tmp/diff_new_pack.NHgtwe/_old 2021-08-11 11:49:19.661594185 +0200 +++ /var/tmp/diff_new_pack.NHgtwe/_new 2021-08-11 11:49:19.665594180 +0200 @@ -18,7 +18,7 @@ %define cpan_name Mojolicious Name: perl-Mojolicious -Version: 9.19 +Version: 9.20 Release: 0 Summary: Real-time web framework License: Artistic-2.0 ++++++ Mojolicious-9.19.tar.gz -> Mojolicious-9.20.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/Changes new/Mojolicious-9.20/Changes --- old/Mojolicious-9.19/Changes 2021-06-02 11:11:07.000000000 +0200 +++ new/Mojolicious-9.20/Changes 2021-08-09 18:40:59.000000000 +0200 @@ -1,4 +1,9 @@ +9.20 2021-08-09 + - Added trace log level to Mojo::Log. + - Changed default log level in Mojo::Log from "debug" to "trace" and moved all built-in "debug" log messages to the + level "trace". That will allow for the "debug" level to be used exclusively for user defined log messages. + 9.19 2021-06-01 - This release contains fixes for security issues, everybody should upgrade! - Swiched from HMAC-SHA1 to HMAC-SHA256 for signed cookies. Note that this means that all sessions will be reset. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/META.json new/Mojolicious-9.20/META.json --- old/Mojolicious-9.19/META.json 2021-06-02 11:12:27.000000000 +0200 +++ new/Mojolicious-9.20/META.json 2021-08-09 19:25:31.000000000 +0200 @@ -63,6 +63,6 @@ "web" : "https://web.libera.chat/#mojo" } }, - "version" : "9.19", + "version" : "9.20", "x_serialization_backend" : "JSON::PP version 4.06" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/META.yml new/Mojolicious-9.20/META.yml --- old/Mojolicious-9.19/META.yml 2021-06-02 11:12:26.000000000 +0200 +++ new/Mojolicious-9.20/META.yml 2021-08-09 19:25:31.000000000 +0200 @@ -34,5 +34,5 @@ homepage: https://mojolicious.org license: http://www.opensource.org/licenses/artistic-license-2.0 repository: https://github.com/mojolicious/mojo.git -version: '9.19' +version: '9.20' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/lib/Mojo/IOLoop.pm new/Mojolicious-9.20/lib/Mojo/IOLoop.pm --- old/Mojolicious-9.19/lib/Mojo/IOLoop.pm 2021-02-12 19:32:41.000000000 +0100 +++ new/Mojolicious-9.20/lib/Mojo/IOLoop.pm 2021-08-09 18:59:45.000000000 +0200 @@ -233,7 +233,7 @@ use Mojo::IOLoop; # Listen on port 3000 - Mojo::IOLoop->server({port => 3000} => sub ($loop, $stream) { + Mojo::IOLoop->server({port => 3000} => sub ($loop, $stream, $id) { $stream->on(read => sub ($stream, $bytes) { # Process input chunk say $bytes; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/lib/Mojo/Log.pm new/Mojolicious-9.20/lib/Mojo/Log.pm --- old/Mojolicious-9.19/lib/Mojo/Log.pm 2021-03-11 20:05:10.000000000 +0100 +++ new/Mojolicious-9.20/lib/Mojo/Log.pm 2021-08-09 18:31:35.000000000 +0200 @@ -19,16 +19,16 @@ return Mojo::File->new($path)->open('>>'); }; has history => sub { [] }; -has level => 'debug'; +has level => 'trace'; has max_history_size => 10; has 'path'; has short => sub { $ENV{MOJO_LOG_SHORT} }; # Supported log levels -my %LEVEL = (debug => 1, info => 2, warn => 3, error => 4, fatal => 5); +my %LEVEL = (trace => 1, debug => 2, info => 3, warn => 4, error => 5, fatal => 6); # Systemd magic numbers -my %MAGIC = (debug => 7, info => 6, warn => 4, error => 3, fatal => 2); +my %MAGIC = (trace => 7, debug => 6, info => 5, warn => 4, error => 3, fatal => 2); # Colors my %COLORS = (warn => ['yellow'], error => ['red'], fatal => ['white on_red']); @@ -42,16 +42,16 @@ flock $handle, LOCK_UN; } -sub debug { 1 >= $LEVEL{$_[0]->level} ? _log(@_, 'debug') : $_[0] } +sub debug { 2 >= $LEVEL{$_[0]->level} ? _log(@_, 'debug') : $_[0] } sub context { my ($self, @context) = @_; return $self->new(parent => $self, context => \@context, level => $self->level); } -sub error { 4 >= $LEVEL{$_[0]->level} ? _log(@_, 'error') : $_[0] } -sub fatal { 5 >= $LEVEL{$_[0]->level} ? _log(@_, 'fatal') : $_[0] } -sub info { 2 >= $LEVEL{$_[0]->level} ? _log(@_, 'info') : $_[0] } +sub error { 5 >= $LEVEL{$_[0]->level} ? _log(@_, 'error') : $_[0] } +sub fatal { 6 >= $LEVEL{$_[0]->level} ? _log(@_, 'fatal') : $_[0] } +sub info { 3 >= $LEVEL{$_[0]->level} ? _log(@_, 'info') : $_[0] } sub is_level { $LEVEL{pop()} >= $LEVEL{shift->level} } @@ -61,7 +61,8 @@ return $self; } -sub warn { 3 >= $LEVEL{$_[0]->level} ? _log(@_, 'warn') : $_[0] } +sub trace { 1 >= $LEVEL{$_[0]->level} ? _log(@_, 'trace') : $_[0] } +sub warn { 4 >= $LEVEL{$_[0]->level} ? _log(@_, 'warn') : $_[0] } sub _color { my $msg = _default(shift, my $level = shift, @_); @@ -119,6 +120,7 @@ my $log = Mojo::Log->new(path => '/var/log/mojo.log', level => 'warn'); # Log messages + $log->trace('Doing stuff'); $log->debug('Not sure what is happening here'); $log->info('FYI: it happened again'); $log->warn('This might be a problem'); @@ -182,8 +184,8 @@ my $level = $log->level; $log = $log->level('debug'); -Active log level, defaults to C<debug>. Available log levels are C<debug>, C<info>, C<warn>, C<error> and C<fatal>, in -that order. +Active log level, defaults to C<trace>. Available log levels are C<trace>, C<debug>, C<info>, C<warn>, C<error> and +C<fatal>, in that order. =head2 max_history_size @@ -283,6 +285,14 @@ Construct a new L<Mojo::Log> object and subscribe to L</"message"> event with default logger. +=head2 trace + + $log = $log->trace('Whatever'); + $log = $log->trace('Who', 'cares'); + $log = $log->trace(sub {...}); + +Emit L</"message"> event and log C<trace> message. + =head2 warn $log = $log->warn('Dont do that Dave...'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/lib/Mojo/Server/Daemon.pm new/Mojolicious-9.20/lib/Mojo/Server/Daemon.pm --- old/Mojolicious-9.19/lib/Mojo/Server/Daemon.pm 2021-04-06 23:17:23.000000000 +0200 +++ new/Mojolicious-9.20/lib/Mojo/Server/Daemon.pm 2021-08-09 18:32:56.000000000 +0200 @@ -91,7 +91,7 @@ my $tx = shift; my $req = $tx->req; - if (my $error = $req->error) { $self->_debug($id, $error->{message}) } + if (my $error = $req->error) { $self->_trace($id, $error->{message}) } # WebSocket if ($req->is_handshake) { @@ -121,7 +121,7 @@ delete $self->{connections}{$id}; } -sub _debug { $_[0]->app->log->debug($_[2]) if $_[0]{connections}{$_[1]}{tx} } +sub _trace { $_[0]->app->log->trace($_[2]) if $_[0]{connections}{$_[1]}{tx} } sub _finish { my ($self, $id) = @_; @@ -200,7 +200,7 @@ $stream->on(close => sub { $self && $self->_close($id) }); $stream->on(error => sub { $self && $self->app->log->error(pop) && $self->_close($id) }); $stream->on(read => sub { $self->_read($id => pop) }); - $stream->on(timeout => sub { $self->_debug($id, 'Inactivity timeout') }); + $stream->on(timeout => sub { $self->_trace($id, 'Inactivity timeout') }); } ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/lib/Mojolicious/Controller.pm new/Mojolicious-9.20/lib/Mojolicious/Controller.pm --- old/Mojolicious-9.19/lib/Mojolicious/Controller.pm 2021-06-01 18:32:48.000000000 +0200 +++ new/Mojolicious-9.20/lib/Mojolicious/Controller.pm 2021-08-09 18:33:11.000000000 +0200 @@ -83,10 +83,10 @@ } if ($valid) { push @results, $value } - else { $self->helpers->log->debug(qq{Cookie "$name" has bad signature}) } + else { $self->helpers->log->trace(qq{Cookie "$name" has bad signature}) } } - else { $self->helpers->log->debug(qq{Cookie "$name" is not signed}) } + else { $self->helpers->log->trace(qq{Cookie "$name" is not signed}) } } return \@results; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/lib/Mojolicious/Guides/Contributing.pod new/Mojolicious-9.20/lib/Mojolicious/Guides/Contributing.pod --- old/Mojolicious-9.19/lib/Mojolicious/Guides/Contributing.pod 2021-06-01 18:32:48.000000000 +0200 +++ new/Mojolicious-9.20/lib/Mojolicious/Guides/Contributing.pod 2021-06-30 15:58:00.000000000 +0200 @@ -9,6 +9,17 @@ There are many ways to contribute to L<Mojolicious>, this guide will show you a few of them. +=head1 PERL FOUNDATION BOYCOTT + +Due to a lack of transparency and accountability of and by the board, we are B<boycotting> The Perl Foundation. Recent +events regarding the Community Affairs Team have unfortunately shown that it does not represent values such as +B<openness> and B<inclusion> to the same extent we do anymore. The Mojolicious Project and its core team will therefore +be withdrawing from Foundation involvement and Foundation-run activities, and we ask you to cease personal donations to +the Foundation until it has been reformed. + +Members of the Mojolicious community are encouraged to politely, but firmly, advocate for the same values in a way that +they see fit, while not violating the Mojolicious L<Code of Conduct|/"CODE OF CONDUCT">. + =head1 REPORTING BUGS We use the L<GitHub issue tracker|https://github.com/mojolicious/mojo/issues>, so you'll need to create a (free) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/lib/Mojolicious/Guides/Tutorial.pod new/Mojolicious-9.20/lib/Mojolicious/Guides/Tutorial.pod --- old/Mojolicious-9.19/lib/Mojolicious/Guides/Tutorial.pod 2021-06-01 18:32:48.000000000 +0200 +++ new/Mojolicious-9.20/lib/Mojolicious/Guides/Tutorial.pod 2021-08-09 18:41:43.000000000 +0200 @@ -894,7 +894,7 @@ The default operating mode will usually be C<development> and can be changed with command line options or the C<MOJO_MODE> and C<PLACK_ENV> environment variables. A mode other than C<development> will raise the log level from -C<debug> to C<info>. All messages will be written to C<STDERR> by default. +C<trace> to C<info>. All messages will be written to C<STDERR> by default. $ ./myapp.pl daemon -m production diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/lib/Mojolicious/Plugin/EPLRenderer.pm new/Mojolicious-9.20/lib/Mojolicious/Plugin/EPLRenderer.pm --- old/Mojolicious-9.19/lib/Mojolicious/Plugin/EPLRenderer.pm 2021-01-29 18:08:08.000000000 +0100 +++ new/Mojolicious-9.20/lib/Mojolicious/Plugin/EPLRenderer.pm 2021-08-09 18:34:43.000000000 +0200 @@ -14,7 +14,7 @@ # Cached if ($mt->compiled) { - $c->helpers->log->debug("Rendering cached @{[$mt->name]}"); + $c->helpers->log->trace("Rendering cached @{[$mt->name]}"); $$output = $mt->process(@args); } @@ -26,7 +26,7 @@ # Inline if (defined $inline) { - $c->helpers->log->debug(qq{Rendering inline template "$name"}); + $c->helpers->log->trace(qq{Rendering inline template "$name"}); $$output = $mt->name(qq{inline template "$name"})->render($inline, @args); } @@ -36,18 +36,18 @@ # Try template if (defined(my $path = $renderer->template_path($options))) { - $c->helpers->log->debug(qq{Rendering template "$name"}); + $c->helpers->log->trace(qq{Rendering template "$name"}); $$output = $mt->name(qq{template "$name"})->render_file($path, @args); } # Try DATA section elsif (defined(my $d = $renderer->get_data_template($options))) { - $c->helpers->log->debug(qq{Rendering template "$name" from DATA section}); + $c->helpers->log->trace(qq{Rendering template "$name" from DATA section}); $$output = $mt->name(qq{template "$name" from DATA section})->render($d, @args); } # No template - else { $c->helpers->log->debug(qq{Template "$name" not found}) } + else { $c->helpers->log->trace(qq{Template "$name" not found}) } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/lib/Mojolicious/Routes.pm new/Mojolicious-9.20/lib/Mojolicious/Routes.pm --- old/Mojolicious-9.19/lib/Mojolicious/Routes.pm 2021-04-08 21:22:24.000000000 +0200 +++ new/Mojolicious-9.20/lib/Mojolicious/Routes.pm 2021-08-09 18:33:56.000000000 +0200 @@ -90,7 +90,7 @@ sub _callback { my ($self, $c, $cb, $last) = @_; $c->stash->{'mojo.routed'} = 1 if $last; - $c->helpers->log->debug('Routing to a callback'); + $c->helpers->log->trace('Routing to a callback'); return _action($c->app, $c, $cb, $last); } @@ -141,7 +141,7 @@ my $class = ref $new; my $log = $old->helpers->log; if ($new->isa('Mojolicious')) { - $log->debug(qq{Routing to application "$class"}); + $log->trace(qq{Routing to application "$class"}); # Try to connect routes if (my $sub = $new->can('routes')) { @@ -154,14 +154,14 @@ # Action elsif (my $method = $field->{action}) { - $log->debug(qq{Routing to controller "$class" and action "$method"}); + $log->trace(qq{Routing to controller "$class" and action "$method"}); if (my $sub = $new->can($method)) { $old->stash->{'mojo.routed'} = 1 if $last; return 1 if _action($old->app, $new, $sub, $last); } - else { $log->debug('Action not found in controller') } + else { $log->trace('Action not found in controller') } } else { croak qq{Controller "$class" requires an action} } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/lib/Mojolicious.pm new/Mojolicious-9.20/lib/Mojolicious.pm --- old/Mojolicious-9.19/lib/Mojolicious.pm 2021-05-23 16:05:42.000000000 +0200 +++ new/Mojolicious-9.20/lib/Mojolicious.pm 2021-08-09 18:30:40.000000000 +0200 @@ -44,7 +44,7 @@ my $self = shift; # Warn developers about insecure default - $self->log->debug('Your secret passphrase needs to be changed'); + $self->log->trace('Your secret passphrase needs to be changed'); # Default to moniker return [$self->moniker]; @@ -56,7 +56,7 @@ has validator => sub { Mojolicious::Validator->new }; our $CODENAME = 'Waffle'; -our $VERSION = '9.19'; +our $VERSION = '9.20'; sub BUILD_DYNAMIC { my ($class, $method, $dyn_methods) = @_; @@ -111,7 +111,7 @@ # Start timer (ignore static files) my $stash = $c->stash; - $c->helpers->log->debug(sub { + $c->helpers->log->trace(sub { my $req = $c->req; my $method = $req->method; my $path = $req->url->path->to_abs_string; @@ -139,7 +139,7 @@ $self->plugins->emit_chain(around_dispatch => $c); # Delayed response - $c->helpers->log->debug('Nothing has been rendered, expecting delayed response') unless $c->stash->{'mojo.rendered'}; + $c->helpers->log->trace('Nothing has been rendered, expecting delayed response') unless $c->stash->{'mojo.rendered'}; } sub helper { shift->renderer->add_helper(@_) } @@ -395,7 +395,7 @@ $app = $app->log(Mojo::Log->new); The logging layer of your application, defaults to a L<Mojo::Log> object. The level will default to either the -C<MOJO_LOG_LEVEL> environment variable, C<debug> if the L</mode> is C<development>, or C<info> otherwise. All messages +C<MOJO_LOG_LEVEL> environment variable, C<trace> if the L</mode> is C<development>, or C<info> otherwise. All messages will be written to C<STDERR> by default. # Log debug message @@ -817,6 +817,8 @@ =over 2 +CandyAngel, C<candyan...@mojolicious.org> + Christopher Rasch-Olsen Raa, C<christop...@mojolicious.org> Dan Book, C<gri...@mojolicious.org> @@ -835,8 +837,6 @@ Abhijit Menon-Sen, C<a...@cpan.org> -CandyAngel, C<candyan...@mojolicious.org> - Glen Hinkle, C<temp...@cpan.org> =back diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/lib/Test/Mojo.pm new/Mojolicious-9.20/lib/Test/Mojo.pm --- old/Mojolicious-9.19/lib/Test/Mojo.pm 2021-03-12 17:21:45.000000000 +0100 +++ new/Mojolicious-9.20/lib/Test/Mojo.pm 2021-08-09 18:42:22.000000000 +0200 @@ -21,7 +21,7 @@ has ua => sub { Mojo::UserAgent->new(insecure => 1)->ioloop(Mojo::IOLoop->singleton) }; # Silent or loud tests -$ENV{MOJO_LOG_LEVEL} ||= $ENV{HARNESS_IS_VERBOSE} ? 'debug' : 'fatal'; +$ENV{MOJO_LOG_LEVEL} ||= $ENV{HARNESS_IS_VERBOSE} ? 'trace' : 'fatal'; sub app { my ($self, $app) = @_; @@ -457,7 +457,7 @@ $ prove -l -v $ prove -l -v t/foo.t -If it is not already defined, the C<MOJO_LOG_LEVEL> environment variable will be set to C<debug> or C<fatal>, depending +If it is not already defined, the C<MOJO_LOG_LEVEL> environment variable will be set to C<trace> or C<fatal>, depending on the value of the C<HARNESS_IS_VERBOSE> environment variable. And to make it esier to test HTTPS/WSS web services L<Mojo::UserAgent/"insecure"> will be activated by default for L</"ua">. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/t/mojo/hypnotoad.t new/Mojolicious-9.20/t/mojo/hypnotoad.t --- old/Mojolicious-9.19/t/mojo/hypnotoad.t 2021-04-06 20:55:29.000000000 +0200 +++ new/Mojolicious-9.20/t/mojo/hypnotoad.t 2021-08-09 18:36:17.000000000 +0200 @@ -76,7 +76,7 @@ } }; -app->log->level('debug'); +app->log->level('trace'); get '/hello' => {text => 'Hello Hypnotoad!'}; @@ -185,7 +185,7 @@ } }; -app->log->level('debug'); +app->log->level('trace'); get '/hello' => sub { shift->render(text => "Hello World \$\$!") }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/t/mojo/log.t new/Mojolicious-9.20/t/mojo/log.t --- old/Mojolicious-9.19/t/mojo/log.t 2021-03-11 20:05:10.000000000 +0100 +++ new/Mojolicious-9.20/t/mojo/log.t 2021-07-06 22:47:42.000000000 +0200 @@ -66,12 +66,13 @@ ok $log->short, 'short messages'; $log = Mojo::Log->new(short => 1); ok $log->short, 'short messages'; - like $log->format->(time, 'debug', 'Test 123'), qr/^<7>\[\d+\] \[d\] Test 123\n$/, 'right format'; - like $log->format->(time, 'info', 'Test 123'), qr/^<6>\[\d+\] \[i\] Test 123\n$/, 'right format'; + like $log->format->(time, 'trace', 'Test 123'), qr/^<7>\[\d+\] \[t\] Test 123\n$/, 'right format'; + like $log->format->(time, 'debug', 'Test 123'), qr/^<6>\[\d+\] \[d\] Test 123\n$/, 'right format'; + like $log->format->(time, 'info', 'Test 123'), qr/^<5>\[\d+\] \[i\] Test 123\n$/, 'right format'; like $log->format->(time, 'warn', 'Test 123'), qr/^<4>\[\d+\] \[w\] Test 123\n$/, 'right format'; like $log->format->(time, 'error', 'Test 123'), qr/^<3>\[\d+\] \[e\] Test 123\n$/, 'right format'; like $log->format->(time, 'fatal', 'Test 123'), qr/^<2>\[\d+\] \[f\] Test 123\n$/, 'right format'; - like $log->format->(time, 'debug', 'Test', '1', '2', '3'), qr/^<7>\[\d+\] \[d\] Test 1 2 3\n$/, 'right format'; + like $log->format->(time, 'debug', 'Test', '1', '2', '3'), qr/^<6>\[\d+\] \[d\] Test 1 2 3\n$/, 'right format'; }; subtest 'Colorized log messages' => sub { @@ -95,7 +96,7 @@ }; subtest 'Events' => sub { - my $log = Mojo::Log->new; + my $log = Mojo::Log->new(level => 'trace'); my $msgs = []; $log->unsubscribe('message')->on( message => sub { @@ -103,6 +104,9 @@ push @$msgs, $level, @lines; } ); + $log->trace('Test', 1, 2, 3); + is_deeply $msgs, [qw(trace Test 1 2 3)], 'right message'; + $msgs = []; $log->debug('Test', 1, 2, 3); is_deeply $msgs, [qw(debug Test 1 2 3)], 'right message'; $msgs = []; @@ -145,9 +149,20 @@ ok !$history->[2], 'no more messages'; }; +subtest '"trace"' => sub { + my $log = Mojo::Log->new(); + is $log->level('trace')->level, 'trace', 'right level'; + ok $log->is_level('trace'), '"trace" log level is active'; + ok $log->is_level('debug'), '"debug" log level is active'; + ok $log->is_level('info'), '"info" log level is active'; + ok $log->is_level('warn'), '"warn" log level is active'; + ok $log->is_level('error'), '"error" log level is active'; +}; + subtest '"debug"' => sub { my $log = Mojo::Log->new; is $log->level('debug')->level, 'debug', 'right level'; + ok !$log->is_level('trace'), '"trace" log level is inactive'; ok $log->is_level('debug'), '"debug" log level is active'; ok $log->is_level('info'), '"info" log level is active'; ok $log->is_level('warn'), '"warn" log level is active'; @@ -157,6 +172,7 @@ subtest '"info"' => sub { my $log = Mojo::Log->new; is $log->level('info')->level, 'info', 'right level'; + ok !$log->is_level('trace'), '"trace" log level is inactive'; ok !$log->is_level('debug'), '"debug" log level is inactive'; ok $log->is_level('info'), '"info" log level is active'; ok $log->is_level('warn'), '"warn" log level is active'; @@ -166,6 +182,7 @@ subtest '"warn"' => sub { my $log = Mojo::Log->new; is $log->level('warn')->level, 'warn', 'right level'; + ok !$log->is_level('trace'), '"trace" log level is inactive'; ok !$log->is_level('debug'), '"debug" log level is inactive'; ok !$log->is_level('info'), '"info" log level is inactive'; ok $log->is_level('warn'), '"warn" log level is active'; @@ -175,6 +192,7 @@ subtest '"error"' => sub { my $log = Mojo::Log->new; is $log->level('error')->level, 'error', 'right level'; + ok !$log->is_level('trace'), '"trace" log level is inactive'; ok !$log->is_level('debug'), '"debug" log level is inactive'; ok !$log->is_level('info'), '"info" log level is inactive'; ok !$log->is_level('warn'), '"warn" log level is inactive'; @@ -184,6 +202,7 @@ subtest '"fatal"' => sub { my $log = Mojo::Log->new; is $log->level('fatal')->level, 'fatal', 'right level'; + ok !$log->is_level('trace'), '"trace" log level is inactive'; ok !$log->is_level('debug'), '"debug" log level is inactive'; ok !$log->is_level('info'), '"info" log level is inactive'; ok !$log->is_level('warn'), '"warn" log level is inactive'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/t/mojo/prefork.t new/Mojolicious-9.20/t/mojo/prefork.t --- old/Mojolicious-9.19/t/mojo/prefork.t 2021-04-06 20:38:25.000000000 +0200 +++ new/Mojolicious-9.20/t/mojo/prefork.t 2021-08-09 18:36:35.000000000 +0200 @@ -34,7 +34,7 @@ subtest 'Bad PID file' => sub { my $bad = curfile->sibling('does_not_exist', 'test.pid'); my $prefork = Mojo::Server::Prefork->new(pid_file => $bad); - $prefork->app->log->level('debug')->unsubscribe('message'); + $prefork->app->log->level('trace')->unsubscribe('message'); my $log = ''; my $cb = $prefork->app->log->on(message => sub { $log .= pop }); eval { $prefork->ensure_pid_file($$) }; @@ -71,7 +71,7 @@ ); $prefork->on(reap => sub { push @reap, pop }); $prefork->on(finish => sub { $graceful = pop }); - $prefork->app->log->level('debug')->unsubscribe('message'); + $prefork->app->log->level('trace')->unsubscribe('message'); my $log = ''; my $cb = $prefork->app->log->on(message => sub { $log .= pop }); is $prefork->healthy, 0, 'no healthy workers'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/t/mojo/user_agent.t new/Mojolicious-9.20/t/mojo/user_agent.t --- old/Mojolicious-9.19/t/mojo/user_agent.t 2021-01-27 16:04:40.000000000 +0100 +++ new/Mojolicious-9.20/t/mojo/user_agent.t 2021-08-09 18:36:45.000000000 +0200 @@ -16,7 +16,7 @@ use Mojolicious::Lite; # Silence -app->log->level('debug')->unsubscribe('message'); +app->log->level('trace')->unsubscribe('message'); get '/' => {text => 'works!'}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/t/mojo/websocket.t new/Mojolicious-9.20/t/mojo/websocket.t --- old/Mojolicious-9.19/t/mojo/websocket.t 2021-03-11 20:05:10.000000000 +0100 +++ new/Mojolicious-9.20/t/mojo/websocket.t 2021-08-09 18:36:54.000000000 +0200 @@ -17,7 +17,7 @@ } # Silence -app->log->level('debug')->unsubscribe('message'); +app->log->level('trace')->unsubscribe('message'); # Avoid exception template app->renderer->paths->[0] = app->home->child('public'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/t/mojolicious/app.t new/Mojolicious-9.20/t/mojolicious/app.t --- old/Mojolicious-9.19/t/mojolicious/app.t 2021-03-20 02:06:48.000000000 +0100 +++ new/Mojolicious-9.20/t/mojolicious/app.t 2021-08-09 18:38:27.000000000 +0200 @@ -170,7 +170,7 @@ ->content_like(qr/Class "MojoliciousTest::Plugin::Test::SomePlugin2" is not a controller/); # Plugin::Test::SomePlugin2::register (security violation again) -$t->app->log->level('debug')->unsubscribe('message'); +$t->app->log->level('trace')->unsubscribe('message'); my $log = ''; my $cb = $t->app->log->on(message => sub { $log .= pop }); $t->get_ok('/plugin-test-some_plugin2/register')->status_isnt(404)->status_is(500) @@ -431,7 +431,7 @@ { # Check default development mode log level local $ENV{MOJO_LOG_LEVEL}; - is(Mojolicious->new->log->level, 'debug', 'right log level'); + is(Mojolicious->new->log->level, 'trace', 'right log level'); # Check non-development mode log level is(Mojolicious->new->mode('test')->log->level, 'info', 'right log level'); @@ -487,7 +487,7 @@ ->header_is(Server => 'Mojolicious (Perl)')->content_is('/foo/routes'); # SingleFileTestApp::Redispatch::handler -$t->app->log->level('debug')->unsubscribe('message'); +$t->app->log->level('trace')->unsubscribe('message'); $log = ''; $cb = $t->app->log->on(message => sub { $log .= pop }); $t->get_ok('/redispatch')->status_is(200)->header_is(Server => 'Mojolicious (Perl)')->content_is('Redispatch!'); @@ -528,7 +528,7 @@ $t->get_ok('/staged')->status_is(200)->header_is(Server => 'Mojolicious (Perl)')->content_is('Go away!'); # MojoliciousTestController::Foo::suspended -$t->app->log->level('debug')->unsubscribe('message'); +$t->app->log->level('trace')->unsubscribe('message'); $log = ''; $cb = $t->app->log->on(message => sub { $log .= pop }); $t->get_ok('/suspended')->status_is(200)->header_is(Server => 'Mojolicious (Perl)') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/t/mojolicious/embedded_lite_app.t new/Mojolicious-9.20/t/mojolicious/embedded_lite_app.t --- old/Mojolicious-9.19/t/mojolicious/embedded_lite_app.t 2021-03-21 14:15:22.000000000 +0100 +++ new/Mojolicious-9.20/t/mojolicious/embedded_lite_app.t 2021-08-09 18:37:25.000000000 +0200 @@ -430,7 +430,7 @@ }; subtest 'Template from myapp.pl (shared logger)' => sub { - $t->app->log->level('debug')->unsubscribe('message'); + $t->app->log->level('trace')->unsubscribe('message'); my $log = ''; my $cb = $t->app->log->on(message => sub { $log .= pop }); $t->get_ok('/x/1')->status_is(200)->content_is(<<'EOF'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/t/mojolicious/group_lite_app.t new/Mojolicious-9.20/t/mojolicious/group_lite_app.t --- old/Mojolicious-9.19/t/mojolicious/group_lite_app.t 2021-04-08 22:04:20.000000000 +0200 +++ new/Mojolicious-9.20/t/mojolicious/group_lite_app.t 2021-08-09 18:37:31.000000000 +0200 @@ -201,7 +201,7 @@ $t->get_ok('/missing')->status_is(500)->content_like(qr/Route without action and nothing to render/); # Suspended bridge -$t->app->log->level('debug')->unsubscribe('message'); +$t->app->log->level('trace')->unsubscribe('message'); my $log = ''; my $cb = $t->app->log->on(message => sub { $log .= pop }); $t->get_ok('/suspended?ok=1')->status_is(200)->header_is(Server => 'Mojolicious (Perl)')->content_is('suspended!'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/t/mojolicious/lite_app.t new/Mojolicious-9.20/t/mojolicious/lite_app.t --- old/Mojolicious-9.19/t/mojolicious/lite_app.t 2021-06-02 11:07:10.000000000 +0200 +++ new/Mojolicious-9.20/t/mojolicious/lite_app.t 2021-08-09 18:37:38.000000000 +0200 @@ -21,7 +21,7 @@ app->defaults(default => 23); # Secret -app->log->level('debug')->unsubscribe('message'); +app->log->level('trace')->unsubscribe('message'); my $log = ''; my $cb = app->log->on(message => sub { $log .= pop }); is app->secrets->[0], app->moniker, 'secret defaults to moniker'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/t/mojolicious/longpolling_lite_app.t new/Mojolicious-9.20/t/mojolicious/longpolling_lite_app.t --- old/Mojolicious-9.19/t/mojolicious/longpolling_lite_app.t 2021-02-17 15:28:38.000000000 +0100 +++ new/Mojolicious-9.20/t/mojolicious/longpolling_lite_app.t 2021-08-09 18:35:54.000000000 +0200 @@ -160,7 +160,7 @@ my $t = Test::Mojo->new; subtest 'Stream without delay and finish' => sub { - $t->app->log->level('debug')->unsubscribe('message'); + $t->app->log->level('trace')->unsubscribe('message'); my $log = ''; my $cb = $t->app->log->on(message => sub { $log .= pop }); my $stash; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/t/mojolicious/renderer.t new/Mojolicious-9.20/t/mojolicious/renderer.t --- old/Mojolicious-9.19/t/mojolicious/renderer.t 2021-01-27 16:04:44.000000000 +0100 +++ new/Mojolicious-9.20/t/mojolicious/renderer.t 2021-08-09 18:37:46.000000000 +0200 @@ -7,7 +7,7 @@ # Partial rendering my $app = Mojolicious->new(secrets => ['works']); my $c = $app->build_controller; -$c->app->log->level('debug')->unsubscribe('message'); +$c->app->log->level('trace')->unsubscribe('message'); is $c->render_to_string(text => 'works'), 'works', 'renderer is working'; # Normal rendering with default format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-9.19/t/mojolicious/static_lite_app.t new/Mojolicious-9.20/t/mojolicious/static_lite_app.t --- old/Mojolicious-9.19/t/mojolicious/static_lite_app.t 2021-02-21 14:34:22.000000000 +0100 +++ new/Mojolicious-9.20/t/mojolicious/static_lite_app.t 2021-08-09 18:37:54.000000000 +0200 @@ -103,7 +103,7 @@ }; subtest 'Static file' => sub { - $t->app->log->level('debug')->unsubscribe('message'); + $t->app->log->level('trace')->unsubscribe('message'); my $log = ''; my $cb = $t->app->log->on(message => sub { $log .= pop }); $t->get_ok('/hello.txt')->status_is(200)->header_is(Server => 'Mojolicious (Perl)')