diff options
Diffstat (limited to 't/015fltmsg.t')
-rw-r--r-- | t/015fltmsg.t | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/t/015fltmsg.t b/t/015fltmsg.t new file mode 100644 index 0000000..928403f --- /dev/null +++ b/t/015fltmsg.t @@ -0,0 +1,120 @@ +########################################### +# Test Suite for Log::Log4perl +# warp_message cases +# Mike Schilli, 2003 (m@perlmeister.com) +########################################### + +BEGIN { + if($ENV{INTERNAL_DEBUG}) { + require Log::Log4perl::InternalDebug; + Log::Log4perl::InternalDebug->enable(); + } +} + +######################### +# change 'tests => 1' to 'tests => last_test_to_print'; +######################### +use Test::More tests => 5; + +use Log::Log4perl; +use Log::Log4perl::Appender::TestBuffer; + +my $EG_DIR = "eg"; +$EG_DIR = "../eg" unless -d $EG_DIR; + +###################################################################### +# warp_message undef: Concatenation +###################################################################### +Log::Log4perl->init( \ <<EOT ); + log4perl.rootLogger=DEBUG, A1 + log4perl.appender.A1=Log::Log4perl::Appender::TestBuffer + log4perl.appender.A1.layout=PatternLayout + log4perl.appender.A1.layout.ConversionPattern=%m%n +EOT + +my $app = Log::Log4perl::Appender::TestBuffer->by_name("A1"); +my $logger = Log::Log4perl->get_logger(""); +$logger->debug("Chunk1", "Chunk2", "Chunk3"); + +is($app->buffer(), "Chunk1Chunk2Chunk3\n", "warp_message undef"); + +###################################################################### +# warp_message undef: Concatenation plus JOIN_MSG_ARRAY_CHAR +###################################################################### +Log::Log4perl->init( \ <<EOT ); + log4perl.rootLogger=DEBUG, A1 + log4perl.appender.A1=Log::Log4perl::Appender::TestBuffer + log4perl.appender.A1.layout=PatternLayout + log4perl.appender.A1.layout.ConversionPattern=%m%n +EOT + +$Log::Log4perl::JOIN_MSG_ARRAY_CHAR = "bang!"; + +$app = Log::Log4perl::Appender::TestBuffer->by_name("A1"); +$logger = Log::Log4perl->get_logger(""); +$logger->debug("Chunk1", "Chunk2", "Chunk3"); + +is($app->buffer(), "Chunk1bang!Chunk2bang!Chunk3\n", + "warp_message undef (JOIN_MSG_ARRAY_CHAR)"); + +$Log::Log4perl::JOIN_MSG_ARRAY_CHAR = ""; # back to default + +###################################################################### +# warp_message 0 +###################################################################### +Log::Log4perl->init( \ <<EOT ); + log4perl.rootLogger=DEBUG, A1 + log4perl.appender.A1=Log::Log4perl::Appender::TestArrayBuffer + log4perl.appender.A1.layout=NoopLayout + log4perl.appender.A1.warp_message=0 +EOT + +$app = Log::Log4perl::Appender::TestArrayBuffer->by_name("A1"); +$logger = Log::Log4perl->get_logger(""); +$logger->debug("Chunk1", "Chunk2", "Chunk3"); + +is($app->buffer(), "[Chunk1,Chunk2,Chunk3]", + "warp_message 0 (NoopLayout)"); + +###################################################################### +# warp_message = code ref +###################################################################### +Log::Log4perl->init( \ <<'EOT' ); + log4perl.rootLogger=DEBUG, A1 + log4perl.appender.A1=Log::Log4perl::Appender::TestArrayBuffer + log4perl.appender.A1.layout=NoopLayout + log4perl.appender.A1.warp_message = sub { $#_ = 2 if @_ > 3; \ + return @_; } +EOT + +$app = Log::Log4perl::Appender::TestArrayBuffer->by_name("A1"); +$logger = Log::Log4perl->get_logger(""); +$logger->debug("Chunk1", "Chunk2", "Chunk3", "Chunk4"); + +is($app->buffer(), "[Chunk1,Chunk2,Chunk3]", + "warp_message = function (by cref)"); + + +###################################################################### +# warp_message = function +###################################################################### +my $COUNTER = 0; +sub warp_my_message { + my @chunks = @_; + unshift @chunks, ++$COUNTER; + return @chunks; +} + +Log::Log4perl->init( \ <<'EOT' ); + log4perl.rootLogger=DEBUG, A1 + log4perl.appender.A1=Log::Log4perl::Appender::TestArrayBuffer + log4perl.appender.A1.layout=NoopLayout + log4perl.appender.A1.warp_message = main::warp_my_message +EOT + +$app = Log::Log4perl::Appender::TestArrayBuffer->by_name("A1"); +$logger = Log::Log4perl->get_logger(""); +$logger->debug("Chunk1", "Chunk2", "Chunk3"); + +is($app->buffer(), "[1,Chunk1,Chunk2,Chunk3]", + "warp_message = function (by name)"); |