summaryrefslogtreecommitdiff
path: root/lib/Log/Log4perl/JavaMap
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Log/Log4perl/JavaMap')
-rw-r--r--lib/Log/Log4perl/JavaMap/ConsoleAppender.pm95
-rw-r--r--lib/Log/Log4perl/JavaMap/FileAppender.pm117
-rw-r--r--lib/Log/Log4perl/JavaMap/JDBCAppender.pm133
-rwxr-xr-xlib/Log/Log4perl/JavaMap/NTEventLogAppender.pm91
-rw-r--r--lib/Log/Log4perl/JavaMap/RollingFileAppender.pm143
-rwxr-xr-xlib/Log/Log4perl/JavaMap/SyslogAppender.pm109
-rw-r--r--lib/Log/Log4perl/JavaMap/TestBuffer.pm70
7 files changed, 758 insertions, 0 deletions
diff --git a/lib/Log/Log4perl/JavaMap/ConsoleAppender.pm b/lib/Log/Log4perl/JavaMap/ConsoleAppender.pm
new file mode 100644
index 0000000..4b43378
--- /dev/null
+++ b/lib/Log/Log4perl/JavaMap/ConsoleAppender.pm
@@ -0,0 +1,95 @@
+package Log::Log4perl::JavaMap::ConsoleAppender;
+
+use Carp;
+use strict;
+use Log::Dispatch::Screen;
+
+
+sub new {
+ my ($class, $appender_name, $data) = @_;
+ my $stderr;
+
+ if (my $t = $data->{Target}{value}) {
+ if ($t eq 'System.out') {
+ $stderr = 0;
+ }elsif ($t eq 'System.err') {
+ $stderr = 1;
+ }else{
+ die "ERROR: illegal value '$t' for $data->{value}.Target' in appender $appender_name\n";
+ }
+ }elsif (defined $data->{stderr}{value}){
+ $stderr = $data->{stderr}{value};
+ }else{
+ $stderr = 0;
+ }
+
+ return Log::Log4perl::Appender->new("Log::Dispatch::Screen",
+ name => $appender_name,
+ stderr => $stderr );
+}
+
+
+1;
+
+
+=encoding utf8
+
+=head1 NAME
+
+Log::Log4perl::JavaMap::ConsoleAppender - wraps Log::Dispatch::Screen
+
+=head1 SYNOPSIS
+
+
+=head1 DESCRIPTION
+
+Possible config properties for log4j ConsoleAppender are
+
+ Target (System.out, System.err, default is System.out)
+
+Possible config properties for Log::Dispatch::Screen are
+
+ stderr (0 or 1)
+
+=head1 SEE ALSO
+
+http://jakarta.apache.org/log4j/docs/
+
+Log::Log4perl::Javamap
+
+Log::Dispatch::Screen
+
+=cut
+
+=head1 LICENSE
+
+Copyright 2002-2013 by Mike Schilli E<lt>m@perlmeister.comE<gt>
+and Kevin Goess E<lt>cpan@goess.orgE<gt>.
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=head1 AUTHOR
+
+Please contribute patches to the project on Github:
+
+ http://github.com/mschilli/log4perl
+
+Send bug reports or requests for enhancements to the authors via our
+
+MAILING LIST (questions, bug reports, suggestions/patches):
+log4perl-devel@lists.sourceforge.net
+
+Authors (please contact them via the list above, not directly):
+Mike Schilli <m@perlmeister.com>,
+Kevin Goess <cpan@goess.org>
+
+Contributors (in alphabetical order):
+Ateeq Altaf, Cory Bennett, Jens Berthold, Jeremy Bopp, Hutton
+Davidson, Chris R. Donnelly, Matisse Enzer, Hugh Esco, Anthony
+Foiani, James FitzGibbon, Carl Franks, Dennis Gregorovic, Andy
+Grundman, Paul Harrington, Alexander Hartmaier David Hull,
+Robert Jacobson, Jason Kohles, Jeff Macdonald, Markus Peter,
+Brett Rann, Peter Rabbitson, Erik Selberg, Aaron Straup Cope,
+Lars Thegler, David Viner, Mac Yang.
+
diff --git a/lib/Log/Log4perl/JavaMap/FileAppender.pm b/lib/Log/Log4perl/JavaMap/FileAppender.pm
new file mode 100644
index 0000000..39f6750
--- /dev/null
+++ b/lib/Log/Log4perl/JavaMap/FileAppender.pm
@@ -0,0 +1,117 @@
+package Log::Log4perl::JavaMap::FileAppender;
+
+use Carp;
+use strict;
+use Log::Dispatch::File;
+
+
+sub new {
+ my ($class, $appender_name, $data) = @_;
+ my $stderr;
+
+ my $filename = $data->{File}{value} ||
+ $data->{filename}{value} ||
+ die "'File' not supplied for appender '$appender_name', required for a '$data->{value}'\n";
+
+ my $mode;
+ if (defined($data->{Append}{value})){
+ if (lc $data->{Append}{value} eq 'true' || $data->{Append}{value} == 1){
+ $mode = 'append';
+ }elsif (lc $data->{Append}{value} eq 'false' || $data->{Append}{value} == 0) {
+ $mode = 'write';
+ }elsif($data->{Append} =~ /^(write|append)$/){
+ $mode = $data->{Append}
+ }else{
+ die "'$data->{Append}' is not a legal value for Append for appender '$appender_name', '$data->{value}'\n";
+ }
+ }else{
+ $mode = 'append';
+ }
+
+ my $autoflush;
+ if (defined($data->{BufferedIO}{value})){
+ if (lc $data->{BufferedIO}{value} eq 'true' || $data->{BufferedIO}{value}){
+ $autoflush = 1;
+ }elsif (lc $data->{BufferedIO}{value} eq 'true' || ! $data->{BufferedIO}{value}) {
+ $autoflush = 0;
+ }else{
+ die "'$data->{BufferedIO}' is not a legal value for BufferedIO for appender '$appender_name', '$data->{value}'\n";
+ }
+ }else{
+ $autoflush = 1;
+ }
+
+
+ return Log::Log4perl::Appender->new("Log::Dispatch::File",
+ name => $appender_name,
+ filename => $filename,
+ mode => $mode,
+ autoflush => $autoflush,
+ );
+}
+
+1;
+
+=encoding utf8
+
+=head1 NAME
+
+Log::Log4perl::JavaMap::FileAppender - wraps Log::Dispatch::File
+
+=head1 SYNOPSIS
+
+
+=head1 DESCRIPTION
+
+Possible config properties for log4j ConsoleAppender are
+
+ File
+ Append "true|false|1|0" default=true
+ BufferedIO "true|false|1|0" default=false (i.e. autoflush is on)
+
+Possible config properties for Log::Dispatch::File are
+
+ filename
+ mode "write|append"
+ autoflush 0|1
+
+=head1 SEE ALSO
+
+http://jakarta.apache.org/log4j/docs/
+
+Log::Log4perl::Javamap
+
+Log::Dispatch::File
+
+=head1 LICENSE
+
+Copyright 2002-2013 by Mike Schilli E<lt>m@perlmeister.comE<gt>
+and Kevin Goess E<lt>cpan@goess.orgE<gt>.
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=head1 AUTHOR
+
+Please contribute patches to the project on Github:
+
+ http://github.com/mschilli/log4perl
+
+Send bug reports or requests for enhancements to the authors via our
+
+MAILING LIST (questions, bug reports, suggestions/patches):
+log4perl-devel@lists.sourceforge.net
+
+Authors (please contact them via the list above, not directly):
+Mike Schilli <m@perlmeister.com>,
+Kevin Goess <cpan@goess.org>
+
+Contributors (in alphabetical order):
+Ateeq Altaf, Cory Bennett, Jens Berthold, Jeremy Bopp, Hutton
+Davidson, Chris R. Donnelly, Matisse Enzer, Hugh Esco, Anthony
+Foiani, James FitzGibbon, Carl Franks, Dennis Gregorovic, Andy
+Grundman, Paul Harrington, Alexander Hartmaier David Hull,
+Robert Jacobson, Jason Kohles, Jeff Macdonald, Markus Peter,
+Brett Rann, Peter Rabbitson, Erik Selberg, Aaron Straup Cope,
+Lars Thegler, David Viner, Mac Yang.
+
diff --git a/lib/Log/Log4perl/JavaMap/JDBCAppender.pm b/lib/Log/Log4perl/JavaMap/JDBCAppender.pm
new file mode 100644
index 0000000..4b35812
--- /dev/null
+++ b/lib/Log/Log4perl/JavaMap/JDBCAppender.pm
@@ -0,0 +1,133 @@
+package Log::Log4perl::JavaMap::JDBCAppender;
+
+use Carp;
+use strict;
+
+sub new {
+ my ($class, $appender_name, $data) = @_;
+ my $stderr;
+
+ my $pwd = $data->{password}{value} ||
+ die "'password' not supplied for appender '$appender_name', required for a '$data->{value}'\n";
+
+ my $username = $data->{user}{value} ||
+ $data->{username}{value} ||
+ die "'user' not supplied for appender '$appender_name', required for a '$data->{value}'\n";
+
+
+ my $sql = $data->{sql}{value} ||
+ die "'sql' not supplied for appender '$appender_name', required for a '$data->{value}'\n";
+
+
+ my $dsn;
+
+ my $databaseURL = $data->{URL}{value};
+ if ($databaseURL) {
+ $databaseURL =~ m|^jdbc:(.+?):(.+?)://(.+?):(.+?);(.+)|;
+ my $driverName = $1;
+ my $databaseName = $2;
+ my $hostname = $3;
+ my $port = $4;
+ my $params = $5;
+ $dsn = "dbi:$driverName:database=$databaseName;host=$hostname;port=$port;$params";
+ }elsif ($data->{datasource}{value}){
+ $dsn = $data->{datasource}{value};
+ }else{
+ die "'databaseURL' not supplied for appender '$appender_name', required for a '$data->{value}'\n";
+ }
+
+
+ #this part isn't supported by log4j, it's my Log4perl
+ #hack, but I think it's so useful I'm going to implement it
+ #anyway
+ my %bind_value_params;
+ foreach my $p (keys %{$data->{params}}){
+ $bind_value_params{$p} = $data->{params}{$p}{value};
+ }
+
+ return Log::Log4perl::Appender->new("Log::Log4perl::Appender::DBI",
+ datasource => $dsn,
+ username => $username,
+ password => $pwd,
+ sql => $sql,
+ params => \%bind_value_params,
+ #warp_message also not a log4j thing, but see above
+ warp_message=> $data->{warp_message}{value},
+ );
+}
+
+1;
+
+=encoding utf8
+
+=head1 NAME
+
+Log::Log4perl::JavaMap::JDBCAppender - wraps Log::Log4perl::Appender::DBI
+
+=head1 SYNOPSIS
+
+
+=head1 DESCRIPTION
+
+Possible config properties for log4j JDBCAppender are
+
+ bufferSize
+ sql
+ password
+ user
+ URL - attempting to translate a JDBC URL into DBI parameters,
+ let me know if you find problems
+
+Possible config properties for Log::Log4perl::Appender::DBI are
+
+ bufferSize
+ sql
+ password
+ username
+ datasource
+
+ usePreparedStmt 0|1
+
+ (patternLayout).dontCollapseArrayRefs 0|1
+
+
+=head1 SEE ALSO
+
+http://jakarta.apache.org/log4j/docs/
+
+Log::Log4perl::Javamap
+
+Log::Log4perl::Appender::DBI
+
+=head1 LICENSE
+
+Copyright 2002-2013 by Mike Schilli E<lt>m@perlmeister.comE<gt>
+and Kevin Goess E<lt>cpan@goess.orgE<gt>.
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=head1 AUTHOR
+
+Please contribute patches to the project on Github:
+
+ http://github.com/mschilli/log4perl
+
+Send bug reports or requests for enhancements to the authors via our
+
+MAILING LIST (questions, bug reports, suggestions/patches):
+log4perl-devel@lists.sourceforge.net
+
+Authors (please contact them via the list above, not directly):
+Mike Schilli <m@perlmeister.com>,
+Kevin Goess <cpan@goess.org>
+
+Contributors (in alphabetical order):
+Ateeq Altaf, Cory Bennett, Jens Berthold, Jeremy Bopp, Hutton
+Davidson, Chris R. Donnelly, Matisse Enzer, Hugh Esco, Anthony
+Foiani, James FitzGibbon, Carl Franks, Dennis Gregorovic, Andy
+Grundman, Paul Harrington, Alexander Hartmaier David Hull,
+Robert Jacobson, Jason Kohles, Jeff Macdonald, Markus Peter,
+Brett Rann, Peter Rabbitson, Erik Selberg, Aaron Straup Cope,
+Lars Thegler, David Viner, Mac Yang.
+
diff --git a/lib/Log/Log4perl/JavaMap/NTEventLogAppender.pm b/lib/Log/Log4perl/JavaMap/NTEventLogAppender.pm
new file mode 100755
index 0000000..845d898
--- /dev/null
+++ b/lib/Log/Log4perl/JavaMap/NTEventLogAppender.pm
@@ -0,0 +1,91 @@
+package Log::Log4perl::JavaMap::NTEventLogAppender;
+
+use Carp;
+use strict;
+
+
+
+sub new {
+ my ($class, $appender_name, $data) = @_;
+ my $stderr;
+
+ my ($source, #
+ );
+
+ if (defined $data->{Source}{value}) {
+ $source = $data->{Source}{value}
+ }elsif (defined $data->{source}{value}){
+ $source = $data->{source}{value};
+ }else{
+ $source = 'user';
+ }
+
+
+ return Log::Log4perl::Appender->new("Log::Dispatch::Win32EventLog",
+ name => $appender_name,
+ source => $source,
+ min_level => 'debug',
+ );
+}
+
+1;
+
+=encoding utf8
+
+=head1 NAME
+
+Log::Log4perl::JavaMap::NTEventLogAppender - wraps Log::Dispatch::Win32EventLog
+
+
+=head1 DESCRIPTION
+
+This maps log4j's NTEventLogAppender to Log::Dispatch::Win32EventLog
+
+Possible config properties for log4j NTEventLogAppender are
+
+ Source
+
+Possible config properties for Log::Dispatch::Win32EventLog are
+
+ source
+
+Boy, that was hard.
+
+=head1 SEE ALSO
+
+http://jakarta.apache.org/log4j/docs/
+
+Log::Log4perl::Javamap
+
+=head1 LICENSE
+
+Copyright 2002-2013 by Mike Schilli E<lt>m@perlmeister.comE<gt>
+and Kevin Goess E<lt>cpan@goess.orgE<gt>.
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=head1 AUTHOR
+
+Please contribute patches to the project on Github:
+
+ http://github.com/mschilli/log4perl
+
+Send bug reports or requests for enhancements to the authors via our
+
+MAILING LIST (questions, bug reports, suggestions/patches):
+log4perl-devel@lists.sourceforge.net
+
+Authors (please contact them via the list above, not directly):
+Mike Schilli <m@perlmeister.com>,
+Kevin Goess <cpan@goess.org>
+
+Contributors (in alphabetical order):
+Ateeq Altaf, Cory Bennett, Jens Berthold, Jeremy Bopp, Hutton
+Davidson, Chris R. Donnelly, Matisse Enzer, Hugh Esco, Anthony
+Foiani, James FitzGibbon, Carl Franks, Dennis Gregorovic, Andy
+Grundman, Paul Harrington, Alexander Hartmaier David Hull,
+Robert Jacobson, Jason Kohles, Jeff Macdonald, Markus Peter,
+Brett Rann, Peter Rabbitson, Erik Selberg, Aaron Straup Cope,
+Lars Thegler, David Viner, Mac Yang.
+
diff --git a/lib/Log/Log4perl/JavaMap/RollingFileAppender.pm b/lib/Log/Log4perl/JavaMap/RollingFileAppender.pm
new file mode 100644
index 0000000..7157e46
--- /dev/null
+++ b/lib/Log/Log4perl/JavaMap/RollingFileAppender.pm
@@ -0,0 +1,143 @@
+package Log::Log4perl::JavaMap::RollingFileAppender;
+
+use Carp;
+use strict;
+use Log::Dispatch::FileRotate 1.10;
+
+
+sub new {
+ my ($class, $appender_name, $data) = @_;
+ my $stderr;
+
+ my $filename = $data->{File}{value} ||
+ $data->{filename}{value} ||
+ die "'File' not supplied for appender '$appender_name', required for a '$data->{value}'\n";
+
+ my $mode;
+ if (defined($data->{Append}{value})){
+ if (lc $data->{Append}{value} eq 'true' || $data->{Append}{value} == 1){
+ $mode = 'append';
+ }elsif (lc $data->{Append}{value} eq 'false' || $data->{Append}{value} == 0) {
+ $mode = 'write';
+ }elsif($data->{Append} =~ /^(write|append)$/){
+ $mode = $data->{Append}
+ }else{
+ die "'$data->{Append}' is not a legal value for Append for appender '$appender_name', '$data->{value}'\n";
+ }
+ }else{
+ $mode = 'append';
+ }
+
+ my $autoflush;
+ if (defined($data->{BufferedIO}{value})){
+ if (lc $data->{BufferedIO}{value} eq 'true' || $data->{BufferedIO}{value}){
+ $autoflush = 1;
+ }elsif (lc $data->{BufferedIO}{value} eq 'true' || ! $data->{BufferedIO}{value}) {
+ $autoflush = 0;
+ }else{
+ die "'$data->{BufferedIO}' is not a legal value for BufferedIO for appender '$appender_name', '$data->{value}'\n";
+ }
+ }else{
+ $autoflush = 1;
+ }
+
+ my $max;
+ if (defined $data->{MaxBackupIndex}{value}) {
+ $max = $data->{MaxBackupIndex}{value};
+ }elsif (defined $data->{max}{value}){
+ $max = $data->{max}{value};
+ }else{
+ $max = 1;
+
+ }
+
+ my $size;
+ if (defined $data->{MaxFileSize}{value}) {
+ $size = $data->{MaxFileSize}{value}
+ }elsif (defined $data->{size}{value}){
+ $size = $data->{size}{value};
+ }else{
+ $size = 10_000_000;
+ }
+
+
+ return Log::Log4perl::Appender->new("Log::Dispatch::FileRotate",
+ name => $appender_name,
+ filename => $filename,
+ mode => $mode,
+ autoflush => $autoflush,
+ size => $size,
+ max => $max,
+ );
+}
+
+1;
+
+=encoding utf8
+
+=head1 NAME
+
+Log::Log4perl::JavaMap::RollingFileAppender - wraps Log::Dispatch::FileRotate
+
+=head1 SYNOPSIS
+
+
+=head1 DESCRIPTION
+
+This maps log4j's RollingFileAppender to Log::Dispatch::FileRotate
+by Mark Pfeiffer, <markpf@mlp-consulting.com.au>.
+
+Possible config properties for log4j ConsoleAppender are
+
+ File
+ Append "true|false|1|0" default=true
+ BufferedIO "true|false|1|0" default=false (i.e. autoflush is on)
+ MaxFileSize default 10_000_000
+ MaxBackupIndex default is 1
+
+Possible config properties for Log::Dispatch::FileRotate are
+
+ filename
+ mode "write|append"
+ autoflush 0|1
+ size
+ max
+
+=head1 SEE ALSO
+
+http://jakarta.apache.org/log4j/docs/
+
+Log::Log4perl::Javamap
+
+=head1 LICENSE
+
+Copyright 2002-2013 by Mike Schilli E<lt>m@perlmeister.comE<gt>
+and Kevin Goess E<lt>cpan@goess.orgE<gt>.
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=head1 AUTHOR
+
+Please contribute patches to the project on Github:
+
+ http://github.com/mschilli/log4perl
+
+Send bug reports or requests for enhancements to the authors via our
+
+MAILING LIST (questions, bug reports, suggestions/patches):
+log4perl-devel@lists.sourceforge.net
+
+Authors (please contact them via the list above, not directly):
+Mike Schilli <m@perlmeister.com>,
+Kevin Goess <cpan@goess.org>
+
+Contributors (in alphabetical order):
+Ateeq Altaf, Cory Bennett, Jens Berthold, Jeremy Bopp, Hutton
+Davidson, Chris R. Donnelly, Matisse Enzer, Hugh Esco, Anthony
+Foiani, James FitzGibbon, Carl Franks, Dennis Gregorovic, Andy
+Grundman, Paul Harrington, Alexander Hartmaier David Hull,
+Robert Jacobson, Jason Kohles, Jeff Macdonald, Markus Peter,
+Brett Rann, Peter Rabbitson, Erik Selberg, Aaron Straup Cope,
+Lars Thegler, David Viner, Mac Yang.
+
diff --git a/lib/Log/Log4perl/JavaMap/SyslogAppender.pm b/lib/Log/Log4perl/JavaMap/SyslogAppender.pm
new file mode 100755
index 0000000..2794bd2
--- /dev/null
+++ b/lib/Log/Log4perl/JavaMap/SyslogAppender.pm
@@ -0,0 +1,109 @@
+package Log::Log4perl::JavaMap::SyslogAppender;
+
+use Carp;
+use strict;
+use Log::Dispatch::Syslog;
+
+
+sub new {
+ my ($class, $appender_name, $data) = @_;
+ my $stderr;
+
+ my ($ident, #defaults to $0
+ $logopt, #Valid options are 'cons', 'pid', 'ndelay', and 'nowait'.
+ $facility, #Valid options are 'auth', 'authpriv',
+ # 'cron', 'daemon', 'kern', 'local0' through 'local7',
+ # 'mail, 'news', 'syslog', 'user', 'uucp'. Defaults to
+ # 'user'
+ $socket, #Valid options are 'unix' or 'inet'. Defaults to 'inet'
+ );
+
+ if (defined $data->{Facility}{value}) {
+ $facility = $data->{Facility}{value}
+ }elsif (defined $data->{facility}{value}){
+ $facility = $data->{facility}{value};
+ }else{
+ $facility = 'user';
+ }
+
+ if (defined $data->{Ident}{value}) {
+ $ident = $data->{Ident}{value}
+ }elsif (defined $data->{ident}{value}){
+ $ident = $data->{ident}{value};
+ }else{
+ $ident = $0;
+ }
+
+ return Log::Log4perl::Appender->new("Log::Dispatch::Syslog",
+ name => $appender_name,
+ facility => $facility,
+ ident => $ident,
+ min_level => 'debug',
+ );
+}
+
+1;
+
+=encoding utf8
+
+=head1 NAME
+
+Log::Log4perl::JavaMap::SysLogAppender - wraps Log::Dispatch::Syslog
+
+
+=head1 DESCRIPTION
+
+This maps log4j's SyslogAppender to Log::Dispatch::Syslog
+
+Possible config properties for log4j SyslogAppender are
+
+ SyslogHost (Log::Dispatch::Syslog only accepts 'localhost')
+ Facility
+
+Possible config properties for Log::Dispatch::Syslog are
+
+ min_level (debug)
+ max_level
+ ident (defaults to $0)
+ logopt
+ facility
+ socket (defaults to 'inet')
+
+=head1 SEE ALSO
+
+http://jakarta.apache.org/log4j/docs/
+
+Log::Log4perl::Javamap
+
+=head1 LICENSE
+
+Copyright 2002-2013 by Mike Schilli E<lt>m@perlmeister.comE<gt>
+and Kevin Goess E<lt>cpan@goess.orgE<gt>.
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=head1 AUTHOR
+
+Please contribute patches to the project on Github:
+
+ http://github.com/mschilli/log4perl
+
+Send bug reports or requests for enhancements to the authors via our
+
+MAILING LIST (questions, bug reports, suggestions/patches):
+log4perl-devel@lists.sourceforge.net
+
+Authors (please contact them via the list above, not directly):
+Mike Schilli <m@perlmeister.com>,
+Kevin Goess <cpan@goess.org>
+
+Contributors (in alphabetical order):
+Ateeq Altaf, Cory Bennett, Jens Berthold, Jeremy Bopp, Hutton
+Davidson, Chris R. Donnelly, Matisse Enzer, Hugh Esco, Anthony
+Foiani, James FitzGibbon, Carl Franks, Dennis Gregorovic, Andy
+Grundman, Paul Harrington, Alexander Hartmaier David Hull,
+Robert Jacobson, Jason Kohles, Jeff Macdonald, Markus Peter,
+Brett Rann, Peter Rabbitson, Erik Selberg, Aaron Straup Cope,
+Lars Thegler, David Viner, Mac Yang.
+
diff --git a/lib/Log/Log4perl/JavaMap/TestBuffer.pm b/lib/Log/Log4perl/JavaMap/TestBuffer.pm
new file mode 100644
index 0000000..5a33f7d
--- /dev/null
+++ b/lib/Log/Log4perl/JavaMap/TestBuffer.pm
@@ -0,0 +1,70 @@
+package Log::Log4perl::JavaMap::TestBuffer;
+
+use Carp;
+use strict;
+use Log::Log4perl::Appender::TestBuffer;
+
+use constant _INTERNAL_DEBUG => 0;
+
+sub new {
+ my ($class, $appender_name, $data) = @_;
+ my $stderr;
+
+ return Log::Log4perl::Appender->new("Log::Log4perl::Appender::TestBuffer",
+ name => $appender_name);
+}
+
+1;
+
+=encoding utf8
+
+=head1 NAME
+
+Log::Log4perl::JavaMap::TestBuffer - wraps Log::Log4perl::Appender::TestBuffer
+
+=head1 SYNOPSIS
+
+=head1 DESCRIPTION
+
+Just for testing the Java mapping.
+
+=head1 SEE ALSO
+
+http://jakarta.apache.org/log4j/docs/
+
+Log::Log4perl::Javamap
+
+Log::Dispatch::Screen
+
+=head1 LICENSE
+
+Copyright 2002-2013 by Mike Schilli E<lt>m@perlmeister.comE<gt>
+and Kevin Goess E<lt>cpan@goess.orgE<gt>.
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=head1 AUTHOR
+
+Please contribute patches to the project on Github:
+
+ http://github.com/mschilli/log4perl
+
+Send bug reports or requests for enhancements to the authors via our
+
+MAILING LIST (questions, bug reports, suggestions/patches):
+log4perl-devel@lists.sourceforge.net
+
+Authors (please contact them via the list above, not directly):
+Mike Schilli <m@perlmeister.com>,
+Kevin Goess <cpan@goess.org>
+
+Contributors (in alphabetical order):
+Ateeq Altaf, Cory Bennett, Jens Berthold, Jeremy Bopp, Hutton
+Davidson, Chris R. Donnelly, Matisse Enzer, Hugh Esco, Anthony
+Foiani, James FitzGibbon, Carl Franks, Dennis Gregorovic, Andy
+Grundman, Paul Harrington, Alexander Hartmaier David Hull,
+Robert Jacobson, Jason Kohles, Jeff Macdonald, Markus Peter,
+Brett Rann, Peter Rabbitson, Erik Selberg, Aaron Straup Cope,
+Lars Thegler, David Viner, Mac Yang.
+