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

Développement de jobs Discussion :

Ne pas afficher les exceptions sur la console


Sujet :

Développement de jobs

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 32
    Points
    32
    Par défaut Ne pas afficher les exceptions sur la console
    Bonjour,

    je voudrais savoir s'il existe un moyen de ne pas afficher sur la console les exceptions survenant durant un job ?
    J'ai essayé en utilisant les composants tDie, tLogCatcher mais les exceptions s'affichent toujours à la console

    Merci

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Si ton job est écrit en Java, il te suffit d'utiliser un composant tJava en début de job pour rediriger les flux d'écriture vers autre chose que la console (fichier, nulle part, etc.) :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.setOut(...);
    System.setErr(...);

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 32
    Points
    32
    Par défaut
    Merci !

    J'ai utilisé : :
    System.setOut(new PrintStream(new FileOutputStream("NUL:")));
    System.setErr(new PrintStream(new FileOutputStream("NUL:")));

    et cela a l'air de fonctionner.
    Je fais quelques tests complémentaires

  4. #4
    Membre éprouvé
    Homme Profil pro
    Architecte Décisionnel
    Inscrit en
    Février 2008
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte Décisionnel

    Informations forums :
    Inscription : Février 2008
    Messages : 866
    Points : 1 260
    Points
    1 260
    Par défaut
    Petite remarque :
    De manière très théorique, c'est quand même un peu dangereux de perdre ces informations...
    Lorsqu'il y aura un problème sur le job, tu n'auras aucune info sur l'origine du problème.

    Nicolas

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 32
    Points
    32
    Par défaut
    Mon but est de pouvoir traiter les erreurs sans forcément avoir une grosse exception qui s'affiche dans la console.

    Je récupère quand même les erreurs (exceptions) avec le tDie, tLogcatcher, etc...

  6. #6
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Citation Envoyé par DevNico Voir le message
    Petite remarque :
    De manière très théorique, c'est quand même un peu dangereux de perdre ces informations...
    Lorsqu'il y aura un problème sur le job, tu n'auras aucune info sur l'origine du problème.
    Je suis d'accord, mais dans certains composants, les "System.out" et "System.err" sont gravés en dur dans le code du composant.

    Donc, pour les supprimer, on a le choix entre "modifier le composant" et "rediriger les flux standards". Cependant, rien n'oblige à les rediriger vers le néant. On peut aussi les envoyer vers un fichier.

    Un cas typique d'utilisation, c'est quand on doit livrer le batch développé à un service d'industrialisation très chatouilleux sur le fait qu'un batch ne doit pas écrire dans la console.

    Au passage, c'est pour répondre à ces problématiques de traçabilité que j'ai développé les composants "Logback" et "Log4J".

  7. #7
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Citation Envoyé par sandF Voir le message
    Merci !

    J'ai utilisé : :
    System.setOut(new PrintStream(new FileOutputStream("NUL:")));
    System.setErr(new PrintStream(new FileOutputStream("NUL:")));

    et cela a l'air de fonctionner.
    Je fais quelques tests complémentaires
    Je pense que tu ne pourras pas utiliser le FileOutputStream sans lui fournir un véritable chemin de fichier. Sur Unix/Linux/Mac, on peut facilement s'en sortir avec "/dev/null".

    Sous Windows, pas d'équivalent à ma connaissance. Si tu veux absolument te débarrasser de ces flux, il va falloir créer ton propre OutputStream qui ne fait rien :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class NopOutputStream extends OutputStream {
        @Override
        public void write(int b) {
            // Ne rien faire
        }
    }

    Attention, l'avertissement de DevNico sur les risques (difficulté de débuggage) s'applique...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ne pas afficher les log sur la console
    Par proDZ dans le forum Logging
    Réponses: 3
    Dernier message: 06/02/2010, 18h30
  2. Réponses: 2
    Dernier message: 10/11/2008, 10h05
  3. comment afficher les exceptions dans console eclipse 3.3
    Par booba12 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 06/12/2007, 15h14
  4. Réponses: 3
    Dernier message: 09/12/2004, 12h49
  5. [JTable] Comment ne pas afficher les titres ?
    Par FabienBxl dans le forum Composants
    Réponses: 3
    Dernier message: 08/10/2003, 16h01

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