IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

logger les erreurs dans une fichier .log au lieu de faire "or die $message_erreur "


Sujet :

Langage Perl

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 158
    Points : 80
    Points
    80
    Par défaut logger les erreurs dans une fichier .log au lieu de faire "or die $message_erreur "
    Bonjour,

    Je voudrais logger dans un fichier log les erreur rencontrées dans mon script

    par exemple faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    move("$source","$destination") or <ecrire un message d'erreur dans une log>;
    Quelle est la bonne pratique pour faire cela ?

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Sous quel système d'exploitation?

    Sous Unix, tu peux remplacer le "die" par un "warn" et rediriger la sortie d'erreur (STDERR) vers un fichier.

    Sous d'autres système il peut être nécessaire d'ouvrir explicitement le fichier log et d'imprimer tes messages dedans.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 158
    Points : 80
    Points
    80
    Par défaut
    Je suis sur Unix.

  4. #4
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Donc, tu peux utiliser la fonction warn pour écrire dans la sortie standard (ou print sur STDERR).

    Et tu appelles ton programme avec une syntaxe de type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl mon_script.pl param1 param2 2>fichier.log
    Ou sinon, tu ouvres explicitement un fichier log. A noter qu'il existe aussi des modules pour gérer les logs, comme Log::Log4perl, mais je ne connais pas.

  5. #5
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Log4perl c'est très bien.

    tu crées un fichier de configuration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    log4perl.logger=DEBUG,RotationFile
    log4perl.appender.RotationFile=Log::Dispatch::FileRotate
    log4perl.appender.RotationFile.filename=/chemin/vers/mon/fichier.log
    log4perl.appender.RotationFile.mode=append
    log4perl.appender.RotationFile.max=10
    log4perl.appender.RotationFile.size=104857600
    log4perl.appender.RotationFile.layout=Log::Log4perl::Layout::PatternLayout
    log4perl.appender.RotationFile.layout.ConversionPattern=%d %p> %m%n
    Et dans ton code tu ajoutes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    use Log::Log4perl qw(:easy);
    Log::Log4perl->init_and_watch("/chemin/vers/mon/fichier_de_conf.cfg", 60);
    my $logger = get_logger();
    $logger->debug( "J'écris dans /chemin/vers/mon/fichier.log" );

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 158
    Points : 80
    Points
    80
    Par défaut
    merci !
    Log4perl fonctionne !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Log::Log4perl->easy_init(
        {
        level => $ERROR,
        file  => ">> $logfile",
        size     => '10Mb',
        }
        );
     
    ERROR("message d'erreur à logger");

Discussions similaires

  1. [WD17] Concaténer les erreurs dans une variable globale
    Par neo25 dans le forum WinDev
    Réponses: 4
    Dernier message: 19/11/2012, 12h42
  2. gérer les erreurs dans une application web java
    Par flamant dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 22/06/2009, 12h10
  3. Logger les modifications dans une BD
    Par 84mickael dans le forum Administration
    Réponses: 4
    Dernier message: 03/12/2008, 15h41
  4. [Sql server 2000] gerer les erreurs dans une procedure
    Par lemagicien dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/03/2008, 21h15
  5. [D7],[Access],[ADO],enregistrer une erreur dans un fichier log
    Par iam dans le forum Bases de données
    Réponses: 9
    Dernier message: 16/04/2007, 18h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo