Leser: 2
![]() |
|< 1 2 >| | ![]() |
18 Einträge, 2 Seiten |
1
2
$SIG{__DIE__} = sub { $log->error(@_) && exit(9) };
$SIG{__WARN__} = sub { $log->warn(@_) };
1
2
3
4
5
6
7
8
9
10
11
12
13
sub DieHandler {
print STDERR "Died: @_\n\n";
print STDERR "Backtrace:\n\n";
my $count = 0;
while( $count > -1 ) {
my ($package, $filename, $line, $sub) = caller($count);
last unless defined $line;
printf STDERR "%02i %5i %-50s %-20s\n", $count++, $line, $sub, $filename;
} # while
die "\nDied\n";
} # DieHandler
$log->error(@_) && exit(9)
$SIG{__DIE__} = sub { print STDERR @_; $log->error(@_); exit(9) }
1
2
3
4
5
6
7
8
9
10
11
12
use strict;
use warnings;
use Log::Handler;
my $log = Log::Handler->new(
filename => \*STDERR,
newline => 1
);
$SIG{__DIE__} = sub { $log->trace(@_); exit(9); };
die "here we die";
1
2
3
4
5
6
# ./foo.pl
Jun 06 08:57:05 [TRACE] here we die at ./foo.pl line 13.
CALL(3): package(main) filename(./foo.pl) line(13) subroutine(main::__ANON__) hasargs(1) wantarray(0)
CALL(2): package(main) filename(./foo.pl) line(11) subroutine(Log::Handler::trace) hasargs(1)
CALL(1): package(Log::Handler) filename(/usr/local/share/perl/5.8.8/Log/Handler.pm) line(959) subroutine(Log::Handler::_print) hasargs(1)
CALL(0): package(Log::Handler) filename(/usr/local/share/perl/5.8.8/Log/Handler.pm) line(1110) subroutine(Devel::Backtrace::new) hasargs(1) wantarray(0)
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
Jun 06 08:59:54 [TRACE] here we die at ./foo.pl line 14.
CALL(3):
package main
filename ./foo.pl
line 14
subroutine main::__ANON__
hasargs 1
wantarray 0
CALL(2):
package main
filename ./foo.pl
line 12
subroutine Log::Handler::trace
hasargs 1
CALL(1):
package Log::Handler
filename /usr/local/share/perl/5.8.8/Log/Handler.pm
line 959
subroutine Log::Handler::_print
hasargs 1
CALL(0):
package Log::Handler
filename /usr/local/share/perl/5.8.8/Log/Handler.pm
line 1110
subroutine Devel::Backtrace::new
hasargs 1
wantarray 0
![]() |
|< 1 2 >| | ![]() |
18 Einträge, 2 Seiten |