Je veux rediriger les messages Mais ce code me donne des erreurs: P> < Pré> xxx pré> Je ne veux pas faire un die code> dans un fichier distinct afin que je puisse comparer ce fichier plus tard pour déterminer ce qui s'est mal passé.
2> code> de l'appelant. Est-ce qu'il y a quelque part pour les rediriger de l'intérieur du script? P> p>
3 Réponses :
Vous pouvez installer un voir $ sig {expr} à Perlvar pour plus de détails. P> p> $ SIG {__ die __} code> gestionnaire à exécuter juste avant que la "matrice" fonctionne. Le gestionnaire sera appelé avec le message d'erreur que vous pouvez vous connecter:
Perl's's Die CODE> Imprime sur
STDERR code> Pour que vous puissiez rediriger
starr code> dans un fichier.
#!/usr/bin/env perl
# the path above depends on your system
open(STDERR, ">>", "errlog.log");
die "Hello";
Cela redirige également les messages, les avertissements et tout ce qui est imprimé à StDerr. Non seulement cela, si quelqu'un l'a fait correctement en redéfinissant le gestionnaire matrice b>, il pourrait même pas rediriger les messages Die ().
the journal :: log4perl code>
module offre plus que quelques options.
On peut choisir de sortir le message d'erreur sur STDRER et le fichier journal. P>
my $logger = Log::Log4perl->init ( 'log.conf' ); # Configuration file controls what to output, like time, line number, class... $logger->get_logger ( 'Hello::World' ); # Define which class logger to use . . . open my $fh, '<', $file or $logger->logdie ( "Log the demise: $!" ); # ... and die;