Ich möchte, sollte eine meiner Widget-Funktionen einen Fehler produzieren, diesen in einer Log-datei mit TimeStamp festhalten.
Habe folgenden Code probiert:
1
2
3
4
5
6
7
8
9
10
11
12
13
eval
{
MainLoop();
};
if($@)
{
my $f;
open($f, ">>$error_log") or open($f, ">$error_log");
my($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
print $f (sprintf("%2d.%02d.%04d %02d:%02d:%02d ", $mday, ($mon + 1), ($year + 1900), $hour, $min, $sec))."$@\n";
close($f);
}
Dann in Zeile 1050 folgenden Fehler absichtlich eingebaut:
aus STDERR kam folgende Fehlermeldung:
QuoteTk::Error: Failed to AUTOLOAD 'Tk::Toplevel::ass' at mmc.pl line 1050
Carp::croak at C:/Programme/Perl/lib/Carp.pm line 269
Tk::Widget::__ANON__ at C:/Programme/Perl/lib/Tk/Widget.pm line 347
main::add_file at mmc.pl line 1050
Tk callback for .button1
Tk::__ANON__ at C:/Programme/Perl/lib/Tk.pm line 252
Tk::Button::butUp at C:/Programme/Perl/lib/Tk/Button.pm line 111
<ButtonRelease-1>
(command bound to event)
..Nur leider wurde nichts in meine Datei geschrieben, ein print-test ergab, dass perl nichtmal in die if($@) { .. } - Schleife reingeht.
Ideen, wie ich das zum Laufen bringen könnte?