Existe-t-il un moyen dans log4Perl que je peux forcer mes programmes à se connecter fatale même en dehors d'une clause eval? Je veux parvenir à appeler log4perl également dans le cas de toute résiliation de programme non gérée. Préférentiellement, je voudrais ajouter le gestionnaire d'erreurs associé dans mon module standard qui est chargé avec tous mes programmes Perl.
La version Perl est actuellement de 5,8, mais je vais bientôt la mettre à niveau.
Ceci est le code de test pour la réponse donnée. Je ne vois ni un DIE sur l'écran ni que die.txt est créé.Perl: Log4Perl appel log4perl en cas d'erreur non gérée
use Log::Log4perl qw(get_logger);
$a->test();
$SIG{__DIE__} = sub {
warn "DIE";
open DIE,">die.txt";
print DIE "died\n";
close DIE;
};
Utilisez les apostrophes inverses autour de « masque », souligne dans les commentaires (les transformer dans le code où aucun formatage est autorisé). // Répondre à un commentaire à une question supprimée. – ZyX
Votre problème est que '$ SIG {__ DIE __}' n'a pas encore été défini au moment où votre erreur se produit. Réglez simplement $ SIG {__ DIE __} 'd'abord, ensuite cela fonctionnera. – dan1111