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

Logging Java Discussion :

Enlever les date dans les log


Sujet :

Logging Java

  1. #1
    Membre régulier Avatar de Space23
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 185
    Points : 88
    Points
    88
    Par défaut Enlever les date dans les log
    Bonjour,

    Voila j'ai un fichier de log classique (définis en bas) et je souhaiterais qu'il ne me mette pas la date et l'heure du jour à chaque log que je fais (log.info, log.fine...).

    Est t-il possible de désactiver le fait de mettre le temps a chaque log? Ou encore mieux le désactiver que pour certains logs?

    Mon logger :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Logger logPerf = Logger.getLogger("perfLog");
    FileHandler fhPerf;
     
    ****
     
    fhPerf = new FileHandler("E:\\Logs\\perfLog.log", true);
    logPerf.addHandler(fhPerf);
    logPerf.setLevel(Level.ALL);
    SimpleFormatter formatter = new SimpleFormatter();
    fhPerf.setFormatter(formatter);

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    quelle api de logging utilise-tu?

  3. #3
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,

    Visiblement tu utilises l'api log du JDK (si je ne me trompe pas) !
    Il n'est pas possible de désactiver la date et l'heure directement, car c'est le SimpleFormatter qui formate les messages de cette façon.

    En revanche, tu peux remplacer le SimpleFormatter par ton propre formateur, pour cela il faut :
    - Creer une classe qui hérite de java.util.logging.Formatter
    - implementer la méthode abstraite format(LogRecord record)
    - faire un setFormatter sur le handler en donnant l'instance de ton formateur

    Petit infos supplémentaire, toute les données du log se trouve dans le LogRecord : le level, la date et heure, l'exception ...
    Pour le formatage du message tu ne t'embête pas tu appels la méthode formatMessage de la classe java.util.logging.Formatter.
    Pour la stackTrace, voila comment elle est traité par le SimpleFormatter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
            if (record.getThrown() != null) {
    	    try {
    	        StringWriter sw = new StringWriter();
    	        PrintWriter pw = new PrintWriter(sw);
    	        record.getThrown().printStackTrace(pw);
    	        pw.close();
    		sb.append(sw.toString());
    	    } catch (Exception ex) {
    	    }
    	}

  4. #4
    Membre régulier Avatar de Space23
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 185
    Points : 88
    Points
    88
    Par défaut
    Meci Alkhan ça marche impeccable . Me suis basé sur le code source du formatter de base et je m'en suis fait un à ma sauce.

    Par contre apparemment même si je n'ai pas défini la console en tant qu'handler, mon logger log automatiquement les messages de niveau supérieur ou égal à INFO dedans. Est-ce que je peux le personnalisé?

  5. #5
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    en fait, lorsque tu créés un logger il hérite automatiquement du root logger qui définit lui va logger dans la console.

    Lorsque tu fais appel au logger il va appeler les handlers que tu as définie pour faire te logs, mais il va aussi demander de faire des logs sur le père de ton logger (donc sur le root).
    Il est possible d'empecher l'envoi vers le père de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Logger logPerf = Logger.getLogger("perfLog");
    logPerf.setUseParentHandlers(false);

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

Discussions similaires

  1. Date dans les notes dans un formulaire personalisé
    Par slacky dans le forum Microsoft Dynamics CRM
    Réponses: 0
    Dernier message: 08/12/2010, 16h55
  2. enlever les slashes devant les apostrophes dans les mails
    Par laurentSc dans le forum Langage
    Réponses: 10
    Dernier message: 16/11/2010, 18h57
  3. Les dates dans les SGBD
    Par benny7 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 06/06/2006, 14h53
  4. Extraire les semaines dans les dates
    Par LE CORRE dans le forum C
    Réponses: 4
    Dernier message: 22/02/2006, 12h34

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