Ich möchte ein Protokoll für mein Perl-Skript erstellen. Aber wenn ich Log::Log4perl verwende, wie kann ich die Fehler erfassen, die vom Skript in jedem Fall geworfen werden. Wie man das in die Protokolldatei einträgt. Derzeit wird alles, was ich explizit in Variablen wie ERROR(), DEBUG() usw. schreibe, die einzigen sein, die in die Protokolldatei gedruckt werden.Protokollieren Sie alle unerwarteten Fehler mithilfe von Log :: Log4perl
Gibt es eine Möglichkeit, dies mit Log :: Log4perl zu tun.
zum Beispiel in dem folgenden Code:
use strict;
use warnings;
use Log::Log4perl qw(:easy);
Log::Log4perl->easy_init({ level => $DEBUG,
file => ">>test.log" });
my $logger = Log::Log4perl->get_logger();
$logger->fatal("This is", " fatal");
$logger->error("This is error");
$logger->warn( "This is warn");
$logger->info( "This is info");
$logger->debug("This is debug");
$logger->trace("This is trace");
my $a = 10;
my $b = $a/0;
Die Division durch Null Fehler wird an das Skript nicht angemeldet. Mein ursprüngliches Skript ist zu komplex, um nach jedem Fehler zu suchen, also möchte etwas, das den Fehler in stderr protokolliert, auch zur Protokolldatei.
Wann wir das, wenn Block im Unter oben eingeben. Da ich immer nur will, dass ein Fehler auftritt, der die Anwendung zum Absturz bringt, möchte ich sie protokollieren und die Ausführung des Skripts stoppen. – Mohit
@Mohit: '$^S' gibt wahr zurück, wenn ein' eval' ausgeführt wird. –