diff options
Diffstat (limited to 't/043VarSubst.t')
-rwxr-xr-x | t/043VarSubst.t | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/t/043VarSubst.t b/t/043VarSubst.t new file mode 100755 index 0000000..90c5da4 --- /dev/null +++ b/t/043VarSubst.t @@ -0,0 +1,141 @@ +#!/usr/bin/perl +########################################################################## +# Check basic variable substitution. +# Mike Schilli, 2003 (m@perlmeister.com) +########################################################################## + +BEGIN { + if($ENV{INTERNAL_DEBUG}) { + require Log::Log4perl::InternalDebug; + Log::Log4perl::InternalDebug->enable(); + } +} + +use warnings; +use strict; + +use Test::More; +BEGIN { plan tests => 8 } +use Log::Log4perl qw(get_logger); + +######################################################## +# Wrong variable name +######################################################## +my $conf = q( +screen = Log::Log4perl::Appender::Screen +log4perl.category = WARN, ScreenApp +log4perl.appender.ScreenApp = ${screen1} +log4perl.appender.ScreenApp.layout = \ + Log::Log4perl::Layout::PatternLayout +log4perl.appender.ScreenApp.layout.ConversionPattern = %d %F{1} %L> %m %n +); + +eval { Log::Log4perl::init(\$conf) }; + +like($@, qr/Undefined Variable 'screen1'/); + +######################################################## +# Replacing appender class name +######################################################## +$conf = q( +screen = Log::Log4perl::Appender::TestBuffer +log4perl.category = WARN, BufferApp +log4perl.appender.BufferApp = ${screen} +log4perl.appender.BufferApp.layout = \ + Log::Log4perl::Layout::PatternLayout +log4perl.appender.BufferApp.layout.ConversionPattern = %d %F{1} %L> %m %n +); + +Log::Log4perl::init(\$conf); +my $logger = get_logger(""); +$logger->error("foobar"); +my $buffer = Log::Log4perl::Appender::TestBuffer->by_name("BufferApp"); +like($buffer->buffer, qr/foobar/); + +######################################################## +# Replacing appender class name +######################################################## +$conf = q( + layout_class = Log::Log4perl::Layout::PatternLayout + layout_pattern = %d %F{1} %L> %m %n + + log4perl.category.Bar.Twix = WARN, Logfile, Screen + + log4perl.appender.Logfile = Log::Log4perl::Appender::TestBuffer + log4perl.appender.Logfile.filename = test.log + log4perl.appender.Logfile.layout = ${layout_class} + log4perl.appender.Logfile.layout.ConversionPattern = ${layout_pattern} + + log4perl.appender.Screen = Log::Log4perl::Appender::TestBuffer + log4perl.appender.Screen.layout = ${layout_class} + log4perl.appender.Screen.layout.ConversionPattern = ${layout_pattern} +); + +Log::Log4perl::init(\$conf); +$logger = get_logger("Bar::Twix"); +$logger->error("foobar"); + +$buffer = Log::Log4perl::Appender::TestBuffer->by_name("Logfile"); +like($buffer->buffer, qr/foobar/); +$buffer = Log::Log4perl::Appender::TestBuffer->by_name("Screen"); +like($buffer->buffer, qr/foobar/); + +######################################################## +# Multi-Line variable +######################################################## +$conf = q( + layout_class = \ +Log::Log4perl::\ +Layout::PatternLayout + layout_pattern = %d %F{1} \ +%L> \ +%m \ +%n + log4perl.category.Bar.Twix = WARN, Logfile, Screen + + log4perl.appender.Logfile = Log::Log4perl::Appender::TestBuffer + log4perl.appender.Logfile.filename = test.log + log4perl.appender.Logfile.layout = ${layout_class} + log4perl.appender.Logfile.layout.ConversionPattern = ${layout_pattern} + + log4perl.appender.Screen = Log::Log4perl::Appender::TestBuffer + log4perl.appender.Screen.layout = ${layout_class} + log4perl.appender.Screen.layout.ConversionPattern = ${layout_pattern} +); + +Log::Log4perl::init(\$conf); +$logger = get_logger("Bar::Twix"); +$logger->error("foobar"); + +$buffer = Log::Log4perl::Appender::TestBuffer->by_name("Logfile"); +like($buffer->buffer, qr/foobar/); +$buffer = Log::Log4perl::Appender::TestBuffer->by_name("Screen"); +like($buffer->buffer, qr/foobar/); + +######################################################## +# Environment variable substitution +######################################################## +$ENV{layout_class} = "Log::Log4perl::Layout::PatternLayout"; +$ENV{layout_pattern} = "%d %F{1} %L> %m %n"; + +$conf = q( + log4perl.category.Bar.Twix = WARN, Logfile, Screen + + log4perl.appender.Logfile = Log::Log4perl::Appender::TestBuffer + log4perl.appender.Logfile.filename = test.log + log4perl.appender.Logfile.layout = ${layout_class} + log4perl.appender.Logfile.layout.ConversionPattern = ${layout_pattern} + + log4perl.appender.Screen = Log::Log4perl::Appender::TestBuffer + log4perl.appender.Screen.layout = ${layout_class} + log4perl.appender.Screen.layout.ConversionPattern = ${layout_pattern} +); + +Log::Log4perl::init(\$conf); +$logger = get_logger("Bar::Twix"); +$logger->error("foobar"); + +$buffer = Log::Log4perl::Appender::TestBuffer->by_name("Logfile"); +like($buffer->buffer, qr/foobar/); +$buffer = Log::Log4perl::Appender::TestBuffer->by_name("Screen"); +like($buffer->buffer, qr/foobar/); |