summaryrefslogtreecommitdiff
path: root/t/043VarSubst.t
diff options
context:
space:
mode:
Diffstat (limited to 't/043VarSubst.t')
-rwxr-xr-xt/043VarSubst.t141
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/);