#!/usr/local/bin/perl ################################################################# # # $Id: 11_test_option_format.t,v 1.4 2005/11/07 16:54:00 erwan Exp $ # # test format option # # 050915 erwan Created # 051007 erwan Fix dependencies # use strict; use warnings; use Data::Dumper; use Test::More; use lib ("./t/", "../lib/", "./lib/"); use Utils; my $log_file; my $dispatch_file; BEGIN { eval "use File::Spec"; plan skip_all => "File::Spec required for testing option dispatchers" if $@; plan tests => 5; $dispatch_file = File::Spec->catfile($ENV{PWD},"dispatch.tmp"); $log_file = File::Spec->catfile($ENV{PWD},"log.tmp"); unlink $log_file; open(DISP,"> $dispatch_file") or die "ERROR: failed to write to file [$dispatch_file]:$!\n"; print DISP "dispatchers = file\n"; print DISP "\n"; print DISP "file.class = Log::Dispatch::File\n"; print DISP "file.min_level = debug\n"; print DISP "file.filename = $log_file\n"; print DISP "file.mode = append\n"; print DISP "file.format = %m%n\n"; close(DISP) or die "ERROR: failed to close [$dispatch_file]:$!\n"; Utils::backup_log_settings(); my $conf = "". "main::* = 2\n". "Log::Localized::format = [%PKG]-[%FNC]-[%LIN]-[%LVL]-[%MSG]\n". "Log::Localized::dispatchers = $dispatch_file\n"; Utils::write_config($conf); use_ok('Log::Localized'); }; my $want_rules = { "main::*" => 2 }; my %rules = Log::Localized::_test_verbosity_rules(); is_deeply(\%rules,$want_rules,"checking that rules were properly loaded"); # log 1 message sub test { llog(1,"that should be logged"); } test(); # check message formatting in log file ok(-f $log_file,"check that log file exists"); open(LOG,"$log_file") or die "ERROR: failed to open log file [$log_file]:$!\n"; my $lines = 0; my $txt = ""; while(my $line = ) { chomp $line; $lines++; $txt = $line; } close(LOG) or die "ERROR: failed to close log file [$log_file]:$!\n"; is($lines,1,"checked logged only 1 line"); is($txt,"[main]-[test]-[60]-[1]-[that should be logged]","check all tags were properly substituted"); unlink $dispatch_file; unlink $log_file; Utils::remove_config(); Utils::restore_log_settings();