1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
|
#!./perl
###########################################################################
#
# caller.t
#
# Copyright (C) 1999 Raphael Manfredi.
# Copyright (C) 2002-2017 Mark Rogaski, mrogaski@cpan.org;
# all rights reserved.
#
# See the README file included with the
# distribution for license information.
#
##########################################################################
print "1..10\n";
require './t/code.pl';
sub ok;
use Log::Agent;
require Log::Agent::Driver::File;
unlink 't/file.out', 't/file.err';
my $show_error = __LINE__ + 2;
sub show_error {
logerr "error string";
}
my $show_output = __LINE__ + 2;
sub show_output {
logsay "output string";
}
my $show_carp = __LINE__ + 2;
sub show_carp {
logcarp "carp string";
}
my $driver = Log::Agent::Driver::File->make(
-prefix => 'me',
-channels => {
'error' => 't/file.err',
'output' => 't/file.out'
},
);
logconfig(
-driver => $driver,
-caller => [ -format => "<%s,%.4d>", -info => "sub line", -postfix => 1 ],
);
show_error;
show_output;
my $carp_line = __LINE__ + 1;
show_carp;
my $error_str = sprintf("%.4d", $show_error);
my $output_str = sprintf("%.4d", $show_output);
my $carp_str = sprintf("%.4d", $show_carp);
ok 1, contains("t/file.err", "error string <main::show_error,$error_str>");
ok 2, !contains("t/file.err", "output string");
ok 3, contains("t/file.out", "output string <main::show_output,$output_str>");
ok 4, !contains("t/file.out", "error string");
ok 5, contains("t/file.err",
"carp string at t/caller.t line $carp_line <main::show_carp,$carp_str>");
ok 6, !contains("t/file.out", "carp string");
unlink 't/file.out', 't/file.err';
undef $Log::Agent::Driver; # Cheat
$driver = Log::Agent::Driver::File->make(
-prefix => 'me',
-channels => {
'error' => 't/file.err',
'output' => 't/file.out'
},
);
logconfig(
-driver => $driver,
-caller => [ -format => "<%a>", -info => "pack file sub line" ],
);
show_error;
show_output;
$error_str = $show_error;
$output_str = $show_output;
my $file = __FILE__;
ok 7, contains("t/file.err",
"<main:${file}:main::show_error:$error_str> error");
ok 8, contains("t/file.out",
"<main:${file}:main::show_output:$output_str> output");
unlink 't/file.out', 't/file.err';
undef $Log::Agent::Driver; # Cheat
$driver = Log::Agent::Driver::File->make(
-prefix => 'me',
-channels => {
'error' => 't/file.err',
'output' => 't/file.out'
},
);
logconfig(
-driver => $driver,
-caller => [ -display => '<$sub/${line}>' ],
);
show_error;
show_output;
ok 9, contains("t/file.err", "<main::show_error\\/$error_str> error");
ok 10, contains("t/file.out", "<main::show_output\\/$output_str> output");
unlink 't/file.out', 't/file.err';
|