Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package perl-Log-Any for openSUSE:Factory checked in at 2023-07-12 17:26:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Log-Any (Old) and /work/SRC/openSUSE:Factory/.perl-Log-Any.new.8922 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Log-Any" Wed Jul 12 17:26:58 2023 rev:32 rq:1098161 version:1.716 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Log-Any/perl-Log-Any.changes 2023-06-03 00:07:06.977950885 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Log-Any.new.8922/perl-Log-Any.changes 2023-07-12 17:27:20.266497166 +0200 @@ -1,0 +2,15 @@ +Tue Jun 27 03:07:17 UTC 2023 - Tina Müller <[email protected]> + +- updated to 1.716 + see /usr/share/doc/packages/perl-Log-Any/Changes + + 1.716 2023-06-26 14:14:46-05:00 America/Chicago + + [Added] + + - Added a parameter to show stack trace arguments when using the + WithStackTrace proxy. Since these arguments may contain sensitive + information, they are now removed by default. Thanks @sam-ng and + @GrantStreetGroup for submitting this patch! [Github #97] + +------------------------------------------------------------------- Old: ---- Log-Any-1.715.tar.gz New: ---- Log-Any-1.716.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Log-Any.spec ++++++ --- /var/tmp/diff_new_pack.v4FdSh/_old 2023-07-12 17:27:20.786500766 +0200 +++ /var/tmp/diff_new_pack.v4FdSh/_new 2023-07-12 17:27:20.790500794 +0200 @@ -18,7 +18,7 @@ %define cpan_name Log-Any Name: perl-Log-Any -Version: 1.715 +Version: 1.716 Release: 0 License: Artistic-1.0 OR GPL-1.0-or-later Summary: Bringing loggers and listeners together ++++++ Log-Any-1.715.tar.gz -> Log-Any-1.716.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/Changes new/Log-Any-1.716/Changes --- old/Log-Any-1.715/Changes 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/Changes 2023-06-26 21:14:53.000000000 +0200 @@ -2,6 +2,15 @@ ** denotes an incompatible change +1.716 2023-06-26 14:14:46-05:00 America/Chicago + + [Added] + + - Added a parameter to show stack trace arguments when using the + WithStackTrace proxy. Since these arguments may contain sensitive + information, they are now removed by default. Thanks @sam-ng and + @GrantStreetGroup for submitting this patch! [Github #97] + 1.715 2023-05-04 13:09:22-05:00 America/Chicago [Fixed] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/META.json new/Log-Any-1.716/META.json --- old/Log-Any-1.715/META.json 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/META.json 2023-06-26 21:14:53.000000000 +0200 @@ -57,75 +57,75 @@ "provides" : { "Log::Any" : { "file" : "lib/Log/Any.pm", - "version" : "1.715" + "version" : "1.716" }, "Log::Any::Adapter" : { "file" : "lib/Log/Any/Adapter.pm", - "version" : "1.715" + "version" : "1.716" }, "Log::Any::Adapter::Base" : { "file" : "lib/Log/Any/Adapter/Base.pm", - "version" : "1.715" + "version" : "1.716" }, "Log::Any::Adapter::Capture" : { "file" : "lib/Log/Any/Adapter/Capture.pm", - "version" : "1.715" + "version" : "1.716" }, "Log::Any::Adapter::File" : { "file" : "lib/Log/Any/Adapter/File.pm", - "version" : "1.715" + "version" : "1.716" }, "Log::Any::Adapter::Multiplex" : { "file" : "lib/Log/Any/Adapter/Multiplex.pm", - "version" : "1.715" + "version" : "1.716" }, "Log::Any::Adapter::Null" : { "file" : "lib/Log/Any/Adapter/Null.pm", - "version" : "1.715" + "version" : "1.716" }, "Log::Any::Adapter::Stderr" : { "file" : "lib/Log/Any/Adapter/Stderr.pm", - "version" : "1.715" + "version" : "1.716" }, "Log::Any::Adapter::Stdout" : { "file" : "lib/Log/Any/Adapter/Stdout.pm", - "version" : "1.715" + "version" : "1.716" }, "Log::Any::Adapter::Syslog" : { "file" : "lib/Log/Any/Adapter/Syslog.pm", - "version" : "1.715" + "version" : "1.716" }, "Log::Any::Adapter::Test" : { "file" : "lib/Log/Any/Adapter/Test.pm", - "version" : "1.715" + "version" : "1.716" }, "Log::Any::Adapter::Util" : { "file" : "lib/Log/Any/Adapter/Util.pm", - "version" : "1.715" + "version" : "1.716" }, "Log::Any::Manager" : { "file" : "lib/Log/Any/Manager.pm", - "version" : "1.715" + "version" : "1.716" }, "Log::Any::Proxy" : { "file" : "lib/Log/Any/Proxy.pm", - "version" : "1.715" + "version" : "1.716" }, "Log::Any::Proxy::Null" : { "file" : "lib/Log/Any/Proxy/Null.pm", - "version" : "1.715" + "version" : "1.716" }, "Log::Any::Proxy::Test" : { "file" : "lib/Log/Any/Proxy/Test.pm", - "version" : "1.715" + "version" : "1.716" }, "Log::Any::Proxy::WithStackTrace" : { "file" : "lib/Log/Any/Proxy/WithStackTrace.pm", - "version" : "1.715" + "version" : "1.716" }, "Log::Any::Test" : { "file" : "lib/Log/Any/Test.pm", - "version" : "1.715" + "version" : "1.716" } }, "release_status" : "stable", @@ -140,10 +140,11 @@ "web" : "https://github.com/preaction/Log-Any" } }, - "version" : "1.715", + "version" : "1.716", "x_authority" : "cpan:PREACTION", "x_contributors" : [ "Andrew Grechkin <[email protected]>", + "Andrew Hewus Fresh <[email protected]>", "bj5004 <[email protected]>", "cm-perl <[email protected]>", "Doug Bell <[email protected]>", @@ -161,6 +162,8 @@ "Paul Durden <[email protected]>", "Philipp Gortan <[email protected]>", "Phill Legault <[email protected]>", + "Samuel Ng <[email protected]>", + "Samuel Ng <[email protected]>", "Shlomi Fish <[email protected]>", "Sven Willenbuecher <[email protected]>", "XSven <[email protected]>" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/META.yml new/Log-Any-1.716/META.yml --- old/Log-Any-1.715/META.yml 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/META.yml 2023-06-26 21:14:53.000000000 +0200 @@ -34,66 +34,67 @@ provides: Log::Any: file: lib/Log/Any.pm - version: '1.715' + version: '1.716' Log::Any::Adapter: file: lib/Log/Any/Adapter.pm - version: '1.715' + version: '1.716' Log::Any::Adapter::Base: file: lib/Log/Any/Adapter/Base.pm - version: '1.715' + version: '1.716' Log::Any::Adapter::Capture: file: lib/Log/Any/Adapter/Capture.pm - version: '1.715' + version: '1.716' Log::Any::Adapter::File: file: lib/Log/Any/Adapter/File.pm - version: '1.715' + version: '1.716' Log::Any::Adapter::Multiplex: file: lib/Log/Any/Adapter/Multiplex.pm - version: '1.715' + version: '1.716' Log::Any::Adapter::Null: file: lib/Log/Any/Adapter/Null.pm - version: '1.715' + version: '1.716' Log::Any::Adapter::Stderr: file: lib/Log/Any/Adapter/Stderr.pm - version: '1.715' + version: '1.716' Log::Any::Adapter::Stdout: file: lib/Log/Any/Adapter/Stdout.pm - version: '1.715' + version: '1.716' Log::Any::Adapter::Syslog: file: lib/Log/Any/Adapter/Syslog.pm - version: '1.715' + version: '1.716' Log::Any::Adapter::Test: file: lib/Log/Any/Adapter/Test.pm - version: '1.715' + version: '1.716' Log::Any::Adapter::Util: file: lib/Log/Any/Adapter/Util.pm - version: '1.715' + version: '1.716' Log::Any::Manager: file: lib/Log/Any/Manager.pm - version: '1.715' + version: '1.716' Log::Any::Proxy: file: lib/Log/Any/Proxy.pm - version: '1.715' + version: '1.716' Log::Any::Proxy::Null: file: lib/Log/Any/Proxy/Null.pm - version: '1.715' + version: '1.716' Log::Any::Proxy::Test: file: lib/Log/Any/Proxy/Test.pm - version: '1.715' + version: '1.716' Log::Any::Proxy::WithStackTrace: file: lib/Log/Any/Proxy/WithStackTrace.pm - version: '1.715' + version: '1.716' Log::Any::Test: file: lib/Log/Any/Test.pm - version: '1.715' + version: '1.716' resources: bugtracker: https://github.com/preaction/Log-Any/issues homepage: https://github.com/preaction/Log-Any repository: https://github.com/preaction/Log-Any.git -version: '1.715' +version: '1.716' x_authority: cpan:PREACTION x_contributors: - 'Andrew Grechkin <[email protected]>' + - 'Andrew Hewus Fresh <[email protected]>' - 'bj5004 <[email protected]>' - 'cm-perl <[email protected]>' - 'Doug Bell <[email protected]>' @@ -111,6 +112,8 @@ - 'Paul Durden <[email protected]>' - 'Philipp Gortan <[email protected]>' - 'Phill Legault <[email protected]>' + - 'Samuel Ng <[email protected]>' + - 'Samuel Ng <[email protected]>' - 'Shlomi Fish <[email protected]>' - 'Sven Willenbuecher <[email protected]>' - 'XSven <[email protected]>' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/Makefile.PL new/Log-Any-1.716/Makefile.PL --- old/Log-Any-1.715/Makefile.PL 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/Makefile.PL 2023-06-26 21:14:53.000000000 +0200 @@ -23,7 +23,7 @@ "IPC::Open3" => 0, "Test::More" => 0 }, - "VERSION" => "1.715", + "VERSION" => "1.716", "test" => { "TESTS" => "t/*.t" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any/Adapter/Base.pm new/Log-Any-1.716/lib/Log/Any/Adapter/Base.pm --- old/Log-Any-1.715/lib/Log/Any/Adapter/Base.pm 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any/Adapter/Base.pm 2023-06-26 21:14:53.000000000 +0200 @@ -4,7 +4,7 @@ package Log::Any::Adapter::Base; -our $VERSION = '1.715'; +our $VERSION = '1.716'; our @CARP_NOT = ( 'Log::Any::Adapter' ); # we import these in case any legacy adapter uses them as class methods @@ -52,7 +52,7 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 AUTHORS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any/Adapter/Capture.pm new/Log-Any-1.716/lib/Log/Any/Adapter/Capture.pm --- old/Log-Any-1.715/lib/Log/Any/Adapter/Capture.pm 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any/Adapter/Capture.pm 2023-06-26 21:14:53.000000000 +0200 @@ -5,7 +5,7 @@ package Log::Any::Adapter::Capture; # ABSTRACT: Adapter for capturing log messages into an arrayref -our $VERSION = '1.715'; +our $VERSION = '1.716'; use Log::Any::Adapter::Util (); @@ -114,7 +114,7 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any/Adapter/Development.pod new/Log-Any-1.716/lib/Log/Any/Adapter/Development.pod --- old/Log-Any-1.715/lib/Log/Any/Adapter/Development.pod 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any/Adapter/Development.pod 2023-06-26 21:14:53.000000000 +0200 @@ -16,7 +16,7 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any/Adapter/File.pm new/Log-Any-1.716/lib/Log/Any/Adapter/File.pm --- old/Log-Any-1.715/lib/Log/Any/Adapter/File.pm 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any/Adapter/File.pm 2023-06-26 21:14:53.000000000 +0200 @@ -5,7 +5,7 @@ package Log::Any::Adapter::File; # ABSTRACT: Simple adapter for logging to files -our $VERSION = '1.715'; +our $VERSION = '1.716'; use Config; use Fcntl qw/:flock/; @@ -80,7 +80,7 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any/Adapter/Multiplex.pm new/Log-Any-1.716/lib/Log/Any/Adapter/Multiplex.pm --- old/Log-Any-1.715/lib/Log/Any/Adapter/Multiplex.pm 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any/Adapter/Multiplex.pm 2023-06-26 21:14:53.000000000 +0200 @@ -1,6 +1,6 @@ package Log::Any::Adapter::Multiplex; # ABSTRACT: Adapter to use allow structured logging across other adapters -our $VERSION = '1.715'; +our $VERSION = '1.716'; use Log::Any; use Log::Any::Adapter; @@ -115,7 +115,7 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any/Adapter/Null.pm new/Log-Any-1.716/lib/Log/Any/Adapter/Null.pm --- old/Log-Any-1.715/lib/Log/Any/Adapter/Null.pm 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any/Adapter/Null.pm 2023-06-26 21:14:53.000000000 +0200 @@ -5,7 +5,7 @@ package Log::Any::Adapter::Null; # ABSTRACT: Discards all log messages -our $VERSION = '1.715'; +our $VERSION = '1.716'; use Log::Any::Adapter::Base; our @ISA = qw/Log::Any::Adapter::Base/; @@ -33,7 +33,7 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any/Adapter/Stderr.pm new/Log-Any-1.716/lib/Log/Any/Adapter/Stderr.pm --- old/Log-Any-1.715/lib/Log/Any/Adapter/Stderr.pm 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any/Adapter/Stderr.pm 2023-06-26 21:14:53.000000000 +0200 @@ -5,7 +5,7 @@ package Log::Any::Adapter::Stderr; # ABSTRACT: Simple adapter for logging to STDERR -our $VERSION = '1.715'; +our $VERSION = '1.716'; use Log::Any::Adapter::Util (); @@ -62,7 +62,7 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any/Adapter/Stdout.pm new/Log-Any-1.716/lib/Log/Any/Adapter/Stdout.pm --- old/Log-Any-1.715/lib/Log/Any/Adapter/Stdout.pm 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any/Adapter/Stdout.pm 2023-06-26 21:14:53.000000000 +0200 @@ -5,7 +5,7 @@ package Log::Any::Adapter::Stdout; # ABSTRACT: Simple adapter for logging to STDOUT -our $VERSION = '1.715'; +our $VERSION = '1.716'; use Log::Any::Adapter::Util (); @@ -62,7 +62,7 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any/Adapter/Syslog.pm new/Log-Any-1.716/lib/Log/Any/Adapter/Syslog.pm --- old/Log-Any-1.715/lib/Log/Any/Adapter/Syslog.pm 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any/Adapter/Syslog.pm 2023-06-26 21:14:53.000000000 +0200 @@ -5,7 +5,7 @@ package Log::Any::Adapter::Syslog; # ABSTRACT: Send Log::Any logs to syslog -our $VERSION = '1.715'; +our $VERSION = '1.716'; use Log::Any::Adapter::Util qw{make_method}; use base qw{Log::Any::Adapter::Base}; @@ -151,7 +151,7 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any/Adapter/Test.pm new/Log-Any-1.716/lib/Log/Any/Adapter/Test.pm --- old/Log-Any-1.715/lib/Log/Any/Adapter/Test.pm 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any/Adapter/Test.pm 2023-06-26 21:14:53.000000000 +0200 @@ -4,7 +4,7 @@ package Log::Any::Adapter::Test; -our $VERSION = '1.715'; +our $VERSION = '1.716'; use Log::Any::Adapter::Util qw/dump_one_line/; use Test::Builder; @@ -218,7 +218,7 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 AUTHORS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any/Adapter/Util.pm new/Log-Any-1.716/lib/Log/Any/Adapter/Util.pm --- old/Log-Any-1.715/lib/Log/Any/Adapter/Util.pm 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any/Adapter/Util.pm 2023-06-26 21:14:53.000000000 +0200 @@ -5,7 +5,7 @@ package Log::Any::Adapter::Util; # ABSTRACT: Common utility functions for Log::Any -our $VERSION = '1.715'; +our $VERSION = '1.716'; use Exporter; our @ISA = qw/Exporter/; @@ -241,7 +241,7 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any/Adapter.pm new/Log-Any-1.716/lib/Log/Any/Adapter.pm --- old/Log-Any-1.715/lib/Log/Any/Adapter.pm 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any/Adapter.pm 2023-06-26 21:14:53.000000000 +0200 @@ -5,7 +5,7 @@ package Log::Any::Adapter; # ABSTRACT: Tell Log::Any where to send its logs -our $VERSION = '1.715'; +our $VERSION = '1.716'; use Log::Any; our @CARP_NOT = ( 'Log::Any::Manager' ); @@ -44,7 +44,7 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any/Manager.pm new/Log-Any-1.716/lib/Log/Any/Manager.pm --- old/Log-Any-1.715/lib/Log/Any/Manager.pm 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any/Manager.pm 2023-06-26 21:14:53.000000000 +0200 @@ -4,7 +4,7 @@ package Log::Any::Manager; -our $VERSION = '1.715'; +our $VERSION = '1.716'; sub new { my $class = shift; @@ -248,7 +248,7 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 AUTHORS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any/Proxy/Null.pm new/Log-Any-1.716/lib/Log/Any/Proxy/Null.pm --- old/Log-Any-1.715/lib/Log/Any/Proxy/Null.pm 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any/Proxy/Null.pm 2023-06-26 21:14:53.000000000 +0200 @@ -5,7 +5,7 @@ package Log::Any::Proxy::Null; # ABSTRACT: Log::Any generator proxy for no adapters -our $VERSION = '1.715'; +our $VERSION = '1.716'; use Log::Any::Adapter::Util (); use Log::Any::Proxy; @@ -57,7 +57,7 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 AUTHORS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any/Proxy/Test.pm new/Log-Any-1.716/lib/Log/Any/Proxy/Test.pm --- old/Log-Any-1.715/lib/Log/Any/Proxy/Test.pm 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any/Proxy/Test.pm 2023-06-26 21:14:53.000000000 +0200 @@ -4,7 +4,7 @@ package Log::Any::Proxy::Test; -our $VERSION = '1.715'; +our $VERSION = '1.716'; use Log::Any::Proxy; our @ISA = qw/Log::Any::Proxy/; @@ -42,7 +42,7 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 AUTHORS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any/Proxy/WithStackTrace.pm new/Log-Any-1.716/lib/Log/Any/Proxy/WithStackTrace.pm --- old/Log-Any-1.715/lib/Log/Any/Proxy/WithStackTrace.pm 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any/Proxy/WithStackTrace.pm 2023-06-26 21:14:53.000000000 +0200 @@ -5,12 +5,13 @@ package Log::Any::Proxy::WithStackTrace; # ABSTRACT: Log::Any proxy to upgrade string errors to objects with stack traces -our $VERSION = '1.715'; +our $VERSION = '1.716'; use Log::Any::Proxy; our @ISA = qw/Log::Any::Proxy/; use Devel::StackTrace 2.00; +use Devel::StackTrace::Extract qw(extract_stack_trace); use Log::Any::Adapter::Util (); use overload; @@ -18,6 +19,9 @@ #pod #pod use Log::Any qw( $log, proxy_class => 'WithStackTrace' ); #pod +#pod # Turns on argument logging in stack traces +#pod use Log::Any qw( $log, proxy_class => 'WithStackTrace', proxy_show_stack_trace_args => 1 ); +#pod #pod # Some adapter that knows how to handle both structured data, #pod # and log messages which are actually objects with a #pod # "stack_trace" method: @@ -40,7 +44,8 @@ #pod C<Log::Any::MessageWithStackTrace> object with a C<stack_trace> method, #pod and that method will return a trace relative to where the logging method #pod was called. A string overload is provided on the object to return the -#pod original message. +#pod original message. Unless a C<proxy_show_stack_trace_args> flag is specified, arguments +#pod in the stack trace will be scrubbed. #pod #pod B<Important:> This proxy should be used with a L<Log::Any::Adapter> that #pod is configured to handle structured data. Otherwise the object created @@ -59,13 +64,14 @@ sub new { - my ($class, $message) = @_; + my ($class, $proxy_show_stack_trace_args, $message) = @_; croak 'no "message"' unless defined $message; return bless { message => $message, stack_trace => Devel::StackTrace->new( # Filter e.g "Log::Any::Proxy", "My::Log::Any::Proxy", etc. ignore_package => [ qr/(?:^|::)Log::Any(?:::|$)/ ], + no_args => !$proxy_show_stack_trace_args, ), }, $class; } @@ -82,7 +88,8 @@ #pod This is an internal use method that will convert a non-reference scalar #pod message into a C<Log::Any::MessageWithStackTrace> object with a #pod C<stack_trace> method. A string overload is provided to return the -#pod original message. +#pod original message. Args are scrubbed out in case they contain sensitive data, +#pod unless the C<proxy_show_stack_trace_args> option has been set. #pod #pod =cut @@ -93,11 +100,21 @@ # Only want a non-ref arg, optionally followed by a structured data # context hashref: # + unless ($self->{proxy_show_stack_trace_args}) { + for my $i (0 .. $#args) { # Check if there's a stack trace to scrub args from + my $trace = extract_stack_trace($args[$i]); + if ($trace) { + $self->delete_args_from_stack_trace($trace); + $args[$i] = $trace; + } + } + } + return @args unless @args == 1 || ( @args == 2 && ref $args[1] eq 'HASH' ); return @args if ref $args[0]; - $args[0] = Log::Any::MessageWithStackTrace->new($args[0]); + $args[0] = Log::Any::MessageWithStackTrace->new($self->{proxy_show_stack_trace_args}, $args[0]); return @args; } @@ -118,6 +135,26 @@ }; } +#pod =head2 delete_args_from_stack_trace($trace) +#pod +#pod $self->delete_args_from_stack_trace($trace) +#pod +#pod To scrub potentially sensitive data from C<Devel::StackTrace> arguments, this method deletes +#pod arguments from all of the C<Devel::StackTrace::Frame> in the trace. +#pod +#pod =cut + +sub delete_args_from_stack_trace +{ + my ($self, $trace) = @_; + + return unless $trace; + + foreach my $frame ($trace->frames) { + $frame->{args} = []; + } +} + 1; __END__ @@ -132,12 +169,15 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 SYNOPSIS use Log::Any qw( $log, proxy_class => 'WithStackTrace' ); + # Turns on argument logging in stack traces + use Log::Any qw( $log, proxy_class => 'WithStackTrace', proxy_show_stack_trace_args => 1 ); + # Some adapter that knows how to handle both structured data, # and log messages which are actually objects with a # "stack_trace" method: @@ -160,7 +200,8 @@ C<Log::Any::MessageWithStackTrace> object with a C<stack_trace> method, and that method will return a trace relative to where the logging method was called. A string overload is provided on the object to return the -original message. +original message. Unless a C<proxy_show_stack_trace_args> flag is specified, arguments +in the stack trace will be scrubbed. B<Important:> This proxy should be used with a L<Log::Any::Adapter> that is configured to handle structured data. Otherwise the object created @@ -174,7 +215,15 @@ This is an internal use method that will convert a non-reference scalar message into a C<Log::Any::MessageWithStackTrace> object with a C<stack_trace> method. A string overload is provided to return the -original message. +original message. Args are scrubbed out in case they contain sensitive data, +unless the C<proxy_show_stack_trace_args> option has been set. + +=head2 delete_args_from_stack_trace($trace) + + $self->delete_args_from_stack_trace($trace) + +To scrub potentially sensitive data from C<Devel::StackTrace> arguments, this method deletes +arguments from all of the C<Devel::StackTrace::Frame> in the trace. =head1 AUTHORS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any/Proxy.pm new/Log-Any-1.716/lib/Log/Any/Proxy.pm --- old/Log-Any-1.715/lib/Log/Any/Proxy.pm 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any/Proxy.pm 2023-06-26 21:14:53.000000000 +0200 @@ -5,7 +5,7 @@ package Log::Any::Proxy; # ABSTRACT: Log::Any generator proxy object -our $VERSION = '1.715'; +our $VERSION = '1.716'; use Log::Any::Adapter::Util (); use overload; @@ -150,7 +150,7 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any/Test.pm new/Log-Any-1.716/lib/Log/Any/Test.pm --- old/Log-Any-1.715/lib/Log/Any/Test.pm 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any/Test.pm 2023-06-26 21:14:53.000000000 +0200 @@ -5,7 +5,7 @@ package Log::Any::Test; # ABSTRACT: Test what you're logging with Log::Any -our $VERSION = '1.715'; +our $VERSION = '1.716'; no warnings 'once'; $Log::Any::OverrideDefaultAdapterClass = 'Log::Any::Adapter::Test'; @@ -25,7 +25,7 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/lib/Log/Any.pm new/Log-Any-1.716/lib/Log/Any.pm --- old/Log-Any-1.715/lib/Log/Any.pm 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/lib/Log/Any.pm 2023-06-26 21:14:53.000000000 +0200 @@ -5,7 +5,7 @@ package Log::Any; # ABSTRACT: Bringing loggers and listeners together -our $VERSION = '1.715'; +our $VERSION = '1.716'; use Log::Any::Manager; use Log::Any::Proxy::Null; @@ -135,7 +135,7 @@ =head1 VERSION -version 1.715 +version 1.716 =head1 SYNOPSIS @@ -478,7 +478,7 @@ =head1 CONTRIBUTORS -=for stopwords Andrew Grechkin bj5004 cm-perl Doug Bell Jonathan Rubin Karen Etheridge Konstantin S. Uvarin Larry Leszczynski Lucas Kanashiro Maros Kollar Maxim Vuets mephinet Michael Conrad Nick Tonkin Paul Durden Philipp Gortan Phill Legault Shlomi Fish Sven Willenbuecher XSven +=for stopwords Andrew Grechkin Hewus Fresh bj5004 cm-perl Doug Bell Jonathan Rubin Karen Etheridge Konstantin S. Uvarin Larry Leszczynski Lucas Kanashiro Maros Kollar Maxim Vuets mephinet Michael Conrad Nick Tonkin Paul Durden Philipp Gortan Phill Legault Samuel Ng Shlomi Fish Sven Willenbuecher XSven =over 4 @@ -488,6 +488,10 @@ =item * +Andrew Hewus Fresh <[email protected]> + +=item * + bj5004 <[email protected]> =item * @@ -556,6 +560,14 @@ =item * +Samuel Ng <[email protected]> + +=item * + +Samuel Ng <[email protected]> + +=item * + Shlomi Fish <[email protected]> =item * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Any-1.715/t/proxy-with-stack-trace.t new/Log-Any-1.716/t/proxy-with-stack-trace.t --- old/Log-Any-1.715/t/proxy-with-stack-trace.t 2023-05-04 20:09:28.000000000 +0200 +++ new/Log-Any-1.716/t/proxy-with-stack-trace.t 2023-06-26 21:14:53.000000000 +0200 @@ -2,9 +2,10 @@ use strict; use warnings; use Test::More; +use List::Util qw( any ); use Log::Any; -plan tests => 48; +plan tests => 61; use FindBin; use lib $FindBin::RealBin; @@ -18,46 +19,60 @@ if ( $@ ) { plan skip_all => 'Devel::StackTrace >= 2.00 is required for this test'; } - else { - eval { - require Storable; - Storable->VERSION( 3.08 ); - }; - if ( $@ ) { - plan skip_all => 'Storable >= 3.08 is required for this test'; - } + eval { + require Storable; + Storable->VERSION( 3.08 ); + }; + if ( $@ ) { + plan skip_all => 'Storable >= 3.08 is required for this test'; + } + eval { + require Devel::StackTrace::Extract; + }; + if ( $@ ) { + plan skip_all => 'Devel::StackTrace::Extract is required for this test'; } } use Log::Any::Proxy::WithStackTrace; # necessary? -my $default_log = Log::Any->get_logger; -my $log = Log::Any->get_logger( proxy_class => 'WithStackTrace' ); +my $default_log = Log::Any->get_logger; +my $log = Log::Any->get_logger( proxy_class => 'WithStackTrace' ); +my $log_show_args = Log::Any->get_logger( proxy_class => 'WithStackTrace', proxy_show_stack_trace_args => 1); -is ref $default_log, 'Log::Any::Proxy::Null', +is ref $default_log, 'Log::Any::Proxy::Null', 'no adapter default proxy is Null'; -is ref $log, 'Log::Any::Proxy::WithStackTrace', +is ref $log, 'Log::Any::Proxy::WithStackTrace', 'no adapter explicit proxy is WithStackTrace'; +is ref $log_show_args, 'Log::Any::Proxy::WithStackTrace', + 'no adapter explicit proxy with proxy_show_stack_trace_args flag is WithStackTrace'; -$default_log->info("test"); -$log ->info("test"); +$default_log ->info("test"); +$log ->info("test"); +$log_show_args->info("test"); -is ref $default_log, 'Log::Any::Proxy::Null', +is ref $default_log, 'Log::Any::Proxy::Null', 'no adapter default proxy is still Null after logging'; -is ref $log, 'Log::Any::Proxy::WithStackTrace', +is ref $log, 'Log::Any::Proxy::WithStackTrace', 'no adapter explicit proxy is still WithStackTrace after logging'; +is ref $log_show_args, 'Log::Any::Proxy::WithStackTrace', + 'no adapter explicit proxy with proxy_show_stack_trace_args flag is still WithStackTrace after logging'; Log::Any->set_adapter('+TestAdapters::Structured'); -is ref $default_log, 'Log::Any::Proxy', +is ref $default_log, 'Log::Any::Proxy', 'existing default proxy is reblessed after adapter'; -is ref $log, 'Log::Any::Proxy::WithStackTrace', +is ref $log, 'Log::Any::Proxy::WithStackTrace', 'existing explicit proxy is still WithStackTrace after adapter'; +is ref $log_show_args, 'Log::Any::Proxy::WithStackTrace', + 'existing explicit proxy with proxy_show_stack_trace_args flag is still WithStackTrace after adapter'; -is ref $default_log->adapter, 'TestAdapters::Structured', +is ref $default_log->adapter, 'TestAdapters::Structured', 'existing default proxy has correct adapter'; -is ref $log->adapter, 'TestAdapters::Structured', +is ref $log->adapter, 'TestAdapters::Structured', 'existing explicit proxy has correct adapter'; +is ref $log_show_args->adapter, 'TestAdapters::Structured', + 'existing explicit proxy with proxy_show_stack_trace_args flag has correct adapter'; my @test_cases = ( [ @@ -132,6 +147,27 @@ is_deeply $more_data, $args->[1], "expected structured data from $type logger"; } + foreach my $frame ($trace->frames) { + is scalar @{ $frame->{args} }, 0, + "stack_trace frame does not have args by default"; + } + + @TestAdapters::STRUCTURED_LOG = (); + $log_show_args->$method(@$args); + $msgs = \@TestAdapters::STRUCTURED_LOG; + $msg = $msgs->[0]->{data}->[0]; # "data" for non-text + + $trace = $msg->stack_trace; + + ok( + any ( + sub { + ($_->args >= 1); + }, + $trace->frames + ), + "stack_trace frame has args if proxy_show_stack_trace_args => 1 is passed to logger", + ); } }
