diff options
Diffstat (limited to 't/068MultilineIndented.t')
-rw-r--r-- | t/068MultilineIndented.t | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/t/068MultilineIndented.t b/t/068MultilineIndented.t new file mode 100644 index 0000000..275ce98 --- /dev/null +++ b/t/068MultilineIndented.t @@ -0,0 +1,81 @@ +my $logfile = "./file.log"; +END { unlink $logfile; } + +use Log::Log4perl; +use Log::Log4perl::Appender; +use Log::Log4perl::Appender::File; +use Log::Log4perl::Layout::PatternLayout; + +use Test::More tests => 1; + +my $logger = Log::Log4perl->get_logger("blah"); + +# 1 19 +# | | +# %d : yyyy/mm/dd hh:mm:ss +my $layout = Log::Log4perl::Layout::PatternLayout->new("%d > %m{indent}%n"); + +my $appender = Log::Log4perl::Appender->new( + "Log::Log4perl::Appender::File", + name => 'foo', + filename => './file.log', + mode => 'append', + autoflush => 1, + ); + +# Set the appender's layout +$appender->layout($layout); +$logger->add_appender($appender); + +my $msg =<<"EOF_MSG"; +This is +a message with +multiple lines +EOF_MSG + +chomp($msg); + +$appender->log({ level => 1, message => $msg }, 'foo_category', 'INFO'); + +# TEST : +# +# Just one test if format of log file is correct. +# Any error of check_log_file_format() is returned as non empty string and +# appended to $test_name to explain what went wrong. +# +my $err_str = check_log_file_format($logfile); +my $test_name = 'log file has multiline intended format' . ($err_str ? " - reason : $err_str" : ""); +ok ( ! $err_str, $test_name ); + +# returns "" on success +# returns non empty error string on failure +sub check_log_file_format { + my $logfile = shift; + + my $err_str = ""; + my $line_count = 1; + open(my $fh, "<", $logfile) || return "could not open log file '$logfile'"; + + for my $line (<$fh>) { + if ($line_count == 1) { + # 1 19 + # | | + # yyyy/mm/dd hh:mm:ss > %m + unless ( $line =~ m!^\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} > This is\s*$! ) { + $err_str = "first line wrong, should be: yyyy/mm/dd hh::mm::ss This is" ; + last; + } + } + else { + unless ( $line =~ /^ {22}\S/ ) { + $err_str = "format of line $line_count wrong"; + last; + } + } + $line_count++; + } + + close($fh); + + return $err_str; +} |