Hello community,
here is the log from the commit of package perl-Log-Log4perl for openSUSE:Factory checked in at 2011-12-21 10:02:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Log-Log4perl (Old)
and /work/SRC/openSUSE:Factory/.perl-Log-Log4perl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Log-Log4perl", Maintainer is "ug@suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Log-Log4perl/perl-Log-Log4perl.changes 2011-09-23 12:37:56.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Log-Log4perl.new/perl-Log-Log4perl.changes 2011-12-21 10:02:26.000000000 +0100
@@ -1,0 +2,13 @@
+Mon Dec 19 15:41:54 UTC 2011 - coolo@suse.de
+
+- update to 1.34
+ * (ms) InternalDebug now replaces all instances of INTERNAL_DEBUG,
+ not just the first one.
+ * (ms) Added test case for get_logger() with a ref() on the actual
+ object instead of on a static category. Updated docs.
+ * (ms) %d{e} in PatternLayout now returns epoch seconds
+ * (ms) [RT#72056] Messages blocked by an appender threshold are no
+ longer passed on to the L4p::Appender::Buffer as undefined
+ entries.
+
+-------------------------------------------------------------------
Old:
----
Log-Log4perl-1.33.tar.gz
New:
----
Log-Log4perl-1.34.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Log-Log4perl.spec ++++++
--- /var/tmp/diff_new_pack.qKpBLW/_old 2011-12-21 10:02:27.000000000 +0100
+++ /var/tmp/diff_new_pack.qKpBLW/_new 2011-12-21 10:02:27.000000000 +0100
@@ -19,13 +19,13 @@
%bcond_with test
Name: perl-Log-Log4perl
-Version: 1.33
-Release: 1
-License: GPL+ or Artistic
+Version: 1.34
+Release: 0
%define cpan_name Log-Log4perl
Summary: Log4j implementation for Perl
-Url: http://search.cpan.org/dist/Log-Log4perl/
+License: GPL-1.0+ or Artistic-1.0
Group: Development/Libraries/Perl
+Url: http://search.cpan.org/dist/Log-Log4perl/
Source: http://www.cpan.org/authors/id/M/MS/MSCHILLI/%{cpan_name}-%{version}.tar.gz
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ Log-Log4perl-1.33.tar.gz -> Log-Log4perl-1.34.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Log4perl-1.33/Changes new/Log-Log4perl-1.34/Changes
--- old/Log-Log4perl-1.33/Changes 2011-06-01 08:51:47.000000000 +0200
+++ new/Log-Log4perl-1.34/Changes 2011-11-05 06:40:01.000000000 +0100
@@ -1,6 +1,16 @@
##################################################
Revision history for Log::Log4perl
##################################################
+1.34 (2011/11/04)
+ * (ms) InternalDebug now replaces all instances of INTERNAL_DEBUG,
+ not just the first one.
+ * (ms) Added test case for get_logger() with a ref() on the actual
+ object instead of on a static category. Updated docs.
+ * (ms) %d{e} in PatternLayout now returns epoch seconds
+ * (ms) [RT 72056] Messages blocked by an appender threshold are no
+ longer passed on to the L4p::Appender::Buffer as undefined
+ entries.
+
1.33 (2011/05/31)
* (ms) [RT 67132] Applied patch by Darin McBride to allow for
empty syswrite messages in the file appender.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Log4perl-1.33/MANIFEST new/Log-Log4perl-1.34/MANIFEST
--- old/Log-Log4perl-1.33/MANIFEST 2011-06-01 08:53:34.000000000 +0200
+++ new/Log-Log4perl-1.34/MANIFEST 2011-11-05 06:42:09.000000000 +0100
@@ -141,6 +141,7 @@
t/061Multiline.t
t/062InitHash.t
t/063LoggerRemove.t
+t/064RealClass.t
t/compare.pl
t/deeper1.expected
t/deeper6.expected
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Log4perl-1.33/META.yml new/Log-Log4perl-1.34/META.yml
--- old/Log-Log4perl-1.33/META.yml 2011-06-01 08:53:34.000000000 +0200
+++ new/Log-Log4perl-1.34/META.yml 2011-11-05 06:42:09.000000000 +0100
@@ -1,6 +1,6 @@
--- #YAML:1.0
name: Log-Log4perl
-version: 1.33
+version: 1.34
abstract: Log4j implementation for Perl
author:
- Mike Schilli
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Log4perl-1.33/README new/Log-Log4perl-1.34/README
--- old/Log-Log4perl-1.33/README 2011-06-01 08:53:34.000000000 +0200
+++ new/Log-Log4perl-1.34/README 2011-11-05 06:42:08.000000000 +0100
@@ -1,5 +1,5 @@
######################################################################
- Log::Log4perl 1.33
+ Log::Log4perl 1.34
######################################################################
NAME
@@ -491,7 +491,7 @@
Third example:
- log4j.rootLogger=debug, stdout, R
+ log4j.rootLogger=DEBUG, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p (%F:%L) - %m%n
@@ -844,13 +844,34 @@
object, like in
# ... in Bar::new() ...
- my $logger = Log::Log4perl::get_logger($class);
+ my $logger = Log::Log4perl::get_logger( $class );
- This way, you'll make sure the logger logs appropriately, no matter if
- the method is inherited or called directly. "new()" always gets the real
- class name as an argument and all other methods can determine it via
- "ref($self)"), so it shouldn't be a problem to get the right class every
- time.
+ In a method other than the constructor, the class name of the actual
+ object can be obtained by calling "ref()" on the object reference, so
+
+ package BaseClass;
+ use Log::Log4perl qw( get_logger );
+
+ sub new {
+ bless {}, shift;
+ }
+
+ sub method {
+ my( $self ) = @_;
+
+ get_logger( ref $self )->debug( "message" );
+ }
+
+ package SubClass;
+ our @ISA = qw(BaseClass);
+
+ is the recommended pattern to make sure that
+
+ my $sub = SubClass->new();
+ $sub->meth();
+
+ starts logging if the "SubClass" category (and not the "BaseClass"
+ category has logging enabled at the DEBUG level.
Initialize once and only once
It's important to realize that Log::Log4perl gets initialized once and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Log4perl-1.33/lib/Log/Log4perl/Appender/Buffer.pm new/Log-Log4perl-1.34/lib/Log/Log4perl/Appender/Buffer.pm
--- old/Log-Log4perl-1.33/lib/Log/Log4perl/Appender/Buffer.pm 2011-05-02 16:48:29.000000000 +0200
+++ new/Log-Log4perl-1.34/lib/Log/Log4perl/Appender/Buffer.pm 2011-11-05 06:40:02.000000000 +0100
@@ -68,8 +68,11 @@
$params{log4p_category},
$params{log4p_level}, \my $cache);
- # Save it in the appender's message buffer
- push @{ $self->{buffer} }, $cache;
+ # Save it in the appender's message buffer, but only if
+ # it hasn't been suppressed by an appender threshold
+ if( defined $cache ) {
+ push @{ $self->{buffer} }, $cache;
+ }
$self->flush() if $self->{trigger}->($self, \%params);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Log4perl-1.33/lib/Log/Log4perl/Appender/TestBuffer.pm new/Log-Log4perl-1.34/lib/Log/Log4perl/Appender/TestBuffer.pm
--- old/Log-Log4perl-1.33/lib/Log/Log4perl/Appender/TestBuffer.pm 2011-05-02 16:48:29.000000000 +0200
+++ new/Log-Log4perl-1.34/lib/Log/Log4perl/Appender/TestBuffer.pm 2011-11-05 06:40:02.000000000 +0100
@@ -39,6 +39,9 @@
my $self = shift;
my %params = @_;
+ if( !defined $params{level} ) {
+ die "No level defined in log() call of " . __PACKAGE__;
+ }
$self->{buffer} .= "[$params{level}]: " if $LOG_PRIORITY;
$self->{buffer} .= $params{message};
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Log4perl-1.33/lib/Log/Log4perl/DateFormat.pm new/Log-Log4perl-1.34/lib/Log/Log4perl/DateFormat.pm
--- old/Log-Log4perl-1.33/lib/Log/Log4perl/DateFormat.pm 2011-05-02 16:48:29.000000000 +0200
+++ new/Log-Log4perl-1.34/lib/Log/Log4perl/DateFormat.pm 2011-11-05 06:40:02.000000000 +0100
@@ -79,7 +79,7 @@
"unmatched single quote in chunk \"$chunk\"";
} else {
# handle active chunks just like before
- $chunk =~ s/(([GyMdhHmsSEDFwWakKzZ])\2*)/$self->rep($1)/ge;
+ $chunk =~ s/(([GyMdhHmsSEeDFwWakKzZ])\2*)/$self->rep($1)/ge;
$fmt .= $chunk;
}
}
@@ -139,6 +139,15 @@
# Always constant
return "AD";
+###################
+#e - epoch seconds#
+###################
+ } elsif($first eq "e") {
+ # index (0) irrelevant, but we return time() which
+ # comes in as 2nd parameter
+ push @{$self->{stack}}, [0, sub { return $_[1] }];
+ return "%d";
+
##########
#y - year#
##########
@@ -287,7 +296,7 @@
for(@{$self->{stack}}) {
my($val, $code) = @$_;
if($code) {
- push @values, $code->($time[$val]);
+ push @values, $code->($time[$val], $secs);
} else {
push @values, $time[$val];
}
@@ -333,13 +342,14 @@
CLog::Log4perl::DateFormat is a formatter which allows dates to be
formatted according to the log4j spec on
- http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html
+ http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat....
which allows the following placeholders to be recognized and processed:
Symbol Meaning Presentation Example
------ ------- ------------ -------
G era designator (Text) AD
+ e epoch seconds (Number) 1315011604
y year (Number) 1996
M month in year (Text & Number) July & 07
d day in month (Number) 10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Log4perl-1.33/lib/Log/Log4perl/InternalDebug.pm new/Log-Log4perl-1.34/lib/Log/Log4perl/InternalDebug.pm
--- old/Log-Log4perl-1.33/lib/Log/Log4perl/InternalDebug.pm 2011-05-02 16:48:29.000000000 +0200
+++ new/Log-Log4perl-1.34/lib/Log/Log4perl/InternalDebug.pm 2011-11-05 06:40:02.000000000 +0100
@@ -25,7 +25,7 @@
my($tmp_fh, $tmpfile) = tempfile( UNLINK => 1 );
- $text =~ s/_INTERNAL_DEBUG(?!\s*=>)/1/;
+ $text =~ s/_INTERNAL_DEBUG(?!\s*=>)/1/g;
print $tmp_fh $text;
seek $tmp_fh, 0, 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Log4perl-1.33/lib/Log/Log4perl/Layout/PatternLayout.pm new/Log-Log4perl-1.34/lib/Log/Log4perl/Layout/PatternLayout.pm
--- old/Log-Log4perl-1.33/lib/Log/Log4perl/Layout/PatternLayout.pm 2011-05-02 16:48:29.000000000 +0200
+++ new/Log-Log4perl-1.34/lib/Log/Log4perl/Layout/PatternLayout.pm 2011-11-05 06:40:02.000000000 +0100
@@ -533,6 +533,7 @@
%c Category of the logging event.
%C Fully qualified package (or class) name of the caller
%d Current date in yyyy/MM/dd hh:mm:ss format
+ %d{...} Current date in customized format (see below)
%F File where the logging event occurred
%H Hostname (if Sys::Hostname is available)
%l Fully qualified name of the calling method followed by the
@@ -634,6 +635,7 @@
E day in week (Text) Tuesday
D day in year (Number) 189
a am/pm marker (Text) PM
+ e epoch seconds (Number) 1315011604
(Text): 4 or more pattern letters--use full form, < 4--use short or
abbreviated form if one exists.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Log4perl-1.33/lib/Log/Log4perl.pm new/Log-Log4perl-1.34/lib/Log/Log4perl.pm
--- old/Log-Log4perl-1.33/lib/Log/Log4perl.pm 2011-05-22 08:11:49.000000000 +0200
+++ new/Log-Log4perl-1.34/lib/Log/Log4perl.pm 2011-11-05 06:40:13.000000000 +0100
@@ -14,7 +14,7 @@
use Log::Log4perl::Config;
use Log::Log4perl::Appender;
-our $VERSION = '1.33';
+our $VERSION = '1.34';
# set this to '1' if you're using a wrapper
# around Log::Log4perl
@@ -1118,7 +1118,7 @@
Third example:
- log4j.rootLogger=debug, stdout, R
+ log4j.rootLogger=DEBUG, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p (%F:%L) - %m%n
@@ -1490,14 +1490,34 @@
I<actual> class of the object, like in
# ... in Bar::new() ...
- my $logger = Log::Log4perl::get_logger($class);
+ my $logger = Log::Log4perl::get_logger( $class );
-This way, you'll make sure the logger logs appropriately,
-no matter if the method is inherited or called directly.
-C always gets the
-real class name as an argument and all other methods can determine it
-via C[), so it shouldn't be a problem to get the right class
-every time.
+In a method other than the constructor, the class name of the actual
+object can be obtained by calling C][ on the object reference, so
+
+ package BaseClass;
+ use Log::Log4perl qw( get_logger );
+
+ sub new {
+ bless {}, shift;
+ }
+
+ sub method {
+ my( $self ) = @_;
+
+ get_logger( ref $self )->debug( "message" );
+ }
+
+ package SubClass;
+ our @ISA = qw(BaseClass);
+
+is the recommended pattern to make sure that
+
+ my $sub = SubClass->new();
+ $sub->meth();
+
+starts logging if the C<"SubClass"> category
+(and not the C<"BaseClass"> category has logging enabled at the DEBUG level.
=head2 Initialize once and only once
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Log4perl-1.33/t/003Layout.t new/Log-Log4perl-1.34/t/003Layout.t
--- old/Log-Log4perl-1.33/t/003Layout.t 2011-05-02 16:48:29.000000000 +0200
+++ new/Log-Log4perl-1.34/t/003Layout.t 2011-11-05 06:40:03.000000000 +0100
@@ -17,7 +17,7 @@
# change 'tests => 1' to 'tests => last_test_to_print';
#########################
use Test::More;
-BEGIN { plan tests => 23 };
+BEGIN { plan tests => 24 };
use Log::Log4perl;
use Log::Log4perl::Layout;
@@ -91,6 +91,14 @@
$logger->debug("That's the message");
like($app->buffer(), qr{01/1970});
+ # epoch format
+$app->buffer("");
+$layout = Log::Log4perl::Layout::PatternLayout->new(
+ { time_function => \&mytimer1 }, "%d{e}> %m");
+$app->layout($layout);
+$logger->debug("That's the message");
+like($app->buffer(), qr/^180000/);
+
############################################################
# Check SimpleLayout
############################################################
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Log4perl-1.33/t/045Composite.t new/Log-Log4perl-1.34/t/045Composite.t
--- old/Log-Log4perl-1.33/t/045Composite.t 2011-05-02 16:48:29.000000000 +0200
+++ new/Log-Log4perl-1.34/t/045Composite.t 2011-11-05 06:40:03.000000000 +0100
@@ -24,7 +24,7 @@
# early Perl versions dont
# have it.
}else{
- plan tests => 18;
+ plan tests => 19;
}
}
@@ -327,3 +327,31 @@
qr/meth=main:: Sent from main.*meth=Willy::Wonka::func Sent from func/s,
"caller stack from composite appender";
+# [RT 72056] Appender Threshold blocks composite appender
+
+$conf = qq(
+ log4perl.category = DEBUG, Composite
+
+ log4perl.appender.Buffer = Log::Log4perl::Appender::TestBuffer
+ log4perl.appender.Buffer.layout = PatternLayout
+ log4perl.appender.Buffer.Threshold=INFO
+ log4perl.appender.Buffer.layout.ConversionPattern=%M %m %n
+
+ # Composite Appender
+ log4perl.appender.Composite = Log::Log4perl::Appender::Buffer
+ log4perl.appender.Composite.appender = Buffer
+ log4perl.appender.Composite.trigger = sub { 0 }
+
+);
+
+Log::Log4perl->init(\$conf);
+
+$buffer = Log::Log4perl::Appender::TestBuffer->by_name("Buffer");
+$logger = get_logger();
+$logger->debug("this will be blocked by the appender threshold");
+
+my $composite = Log::Log4perl->appender_by_name("Composite");
+$composite->flush();
+
+is $buffer->buffer(), "",
+ "appender threshold blocks message in composite appender";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Log-Log4perl-1.33/t/064RealClass.t new/Log-Log4perl-1.34/t/064RealClass.t
--- old/Log-Log4perl-1.33/t/064RealClass.t 1970-01-01 01:00:00.000000000 +0100
+++ new/Log-Log4perl-1.34/t/064RealClass.t 2011-11-05 06:40:03.000000000 +0100
@@ -0,0 +1,44 @@
+# get_logger($self) in the base class returns a logger for the subclass
+# category
+
+use strict;
+use Test::More;
+use Log::Log4perl::Appender::TestBuffer;
+
+plan tests => 1;
+
+package AppBaseClass;
+use Log::Log4perl qw(get_logger :easy);
+sub meth {
+ my( $self ) = @_;
+ get_logger( ref $self )->warn("in base class");
+}
+
+package AppSubClass;
+our @ISA = qw(AppBaseClass);
+use Log::Log4perl qw(get_logger :easy);
+sub new {
+ bless {}, shift;
+}
+
+package main;
+
+use Log::Log4perl qw(get_logger :easy);
+
+# $Log::Log4perl::CHATTY_DESTROY_METHODS = 1;
+
+my $conf = q(
+log4perl.category.AppSubClass = WARN, LogBuffer
+log4perl.appender.LogBuffer = Log::Log4perl::Appender::TestBuffer
+log4perl.appender.LogBuffer.layout = Log::Log4perl::Layout::PatternLayout
+log4perl.appender.LogBuffer.layout.ConversionPattern = %m%n
+);
+
+Log::Log4perl::init(\$conf);
+
+my $buffer = Log::Log4perl::Appender::TestBuffer->by_name("LogBuffer");
+
+my $sub = AppSubClass->new();
+$sub->meth();
+
+is $buffer->buffer(), "in base class\n", "subclass logger in base class";
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org]