1###########################################
2# Test Suite for Log::Log4perl
3# Mike Schilli, 2002 (m@perlmeister.com)
4###########################################
5
6BEGIN { 
7    if($ENV{INTERNAL_DEBUG}) {
8        require Log::Log4perl::InternalDebug;
9        Log::Log4perl::InternalDebug->enable();
10    }
11}
12
13use warnings;
14use strict;
15
16use Test::More;
17BEGIN { plan tests => 4 };
18
19use Log::Log4perl qw(:easy);
20
21#########################################################
22# double newline
23#########################################################
24my $conf = q(
25  log4perl.category = DEBUG, Buffer
26  log4perl.appender.Buffer = Log::Log4perl::Appender::TestBuffer
27  log4perl.appender.Buffer.layout = Log::Log4perl::Layout::PatternLayout
28  log4perl.appender.Buffer.layout.ConversionPattern = %d %F{1} %L> %m%n
29);
30
31Log::Log4perl->init( \$conf );
32my $buf = Log::Log4perl::Appender::TestBuffer->by_name("Buffer");
33
34DEBUG "blah\n";
35DEBUG "blah\n";
36
37unlike($buf->buffer(), qr/blah\n\n/);
38
39#########################################################
40# turn default %m%n chomping feature off
41#########################################################
42$conf = q(
43  log4perl.category = DEBUG, Buffer
44  log4perl.appender.Buffer = Log::Log4perl::Appender::TestBuffer
45  log4perl.appender.Buffer.layout = Log::Log4perl::Layout::PatternLayout
46  log4perl.appender.Buffer.layout.ConversionPattern = %d %F{1} %L> %m%n
47  log4perl.appender.Buffer.layout.message_chomp_before_newline = 0
48);
49
50Log::Log4perl->init( \$conf );
51$buf = Log::Log4perl::Appender::TestBuffer->by_name("Buffer");
52
53DEBUG "blah\n";
54DEBUG "blah\n";
55like($buf->buffer(), qr/blah\n\n/);
56
57#########################################################
58# %m without chomp
59#########################################################
60$conf = q(
61  log4perl.category = DEBUG, Buffer
62  log4perl.appender.Buffer = Log::Log4perl::Appender::TestBuffer
63  log4perl.appender.Buffer.layout = Log::Log4perl::Layout::PatternLayout
64  log4perl.appender.Buffer.layout.ConversionPattern = %m foo %n
65);
66
67Log::Log4perl->init( \$conf );
68$buf = Log::Log4perl::Appender::TestBuffer->by_name("Buffer");
69
70DEBUG "blah\n";
71like($buf->buffer(), qr/blah\n foo/);
72
73#########################################################
74# try %m{chomp}
75#########################################################
76$conf = q(
77  log4perl.category = DEBUG, Buffer
78  log4perl.appender.Buffer = Log::Log4perl::Appender::TestBuffer
79  log4perl.appender.Buffer.layout = Log::Log4perl::Layout::PatternLayout
80  log4perl.appender.Buffer.layout.ConversionPattern = %m{chomp} foo %n
81);
82
83Log::Log4perl->init( \$conf );
84$buf = Log::Log4perl::Appender::TestBuffer->by_name("Buffer");
85
86DEBUG "blah\n";
87DEBUG "blah\n";
88like($buf->buffer(), qr/blah foo /);
89