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

Java Discussion :

Supprimer ligne par défaut dans Logger


Sujet :

Java

  1. #1
    Membre régulier
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Points : 93
    Points
    93
    Par défaut Supprimer ligne par défaut dans Logger
    Bonjour,

    J'utilise Logger pour faire des logs dans mes apps Java.

    A chaque fois que je fait un log(level, msg), la ligne suivante s’insère automatiquement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    14 oct. 2011 11:44:06 java.util.logging.LogManager$RootLogger log
    Je n'ai pas trouvé comment supprimer cette ligne !

    Comment faire ?

    Pour info, voila comment j'initialise mon logger :

    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static void setupLog(){
    	    try{
    	    	// Initialisation du Logger
    		fileTxt = new FileHandler(fileLog, true); 	// Creation du handler
    		logger.addHandler(fileTxt);
    		fileTxt.setFormatter(new SimpleFormatter());	
    	    }catch (IOException ioe){
    	    }
    	}


    Merci

  2. #2
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Peux tu nous expliquer pourquoi cette initialisation ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static void setupLog(){
    	    try{
    	    	// Initialisation du Logger
    		fileTxt = new FileHandler(fileLog, true); 	// Creation du handler
    		logger.addHandler(fileTxt);
    		fileTxt.setFormatter(new SimpleFormatter());	
    	    }catch (IOException ioe){
    	    }
    	}
    C'est peut être là ton souci, un simple config de ton log4J.properties ou .xml est suffisant, la dedans tu configures tout ce dont a besoin log4J pour logger.

  3. #3
    Membre régulier
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fileTxt = new FileHandler(fileLog, true); 	// Creation du handler
    logger.addHandler(fileTxt);
    Ces 2 lignes sont pour définir le chemin de mon fichier de log.

    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    fileTxt.setFormatter(new SimpleFormatter());
    La dernière, j'avoue que je ne sais pas vraiment si elle est pertinente !

    Je n'ai pas de log4j.properties ni de .xml pour configurer mon Logger (Logger c'est pareil que log4j ???) ! Si j'en créé un, ou doit-il se trouver ?

  4. #4
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    A la racine de ton src ou à la racine de ton WEB-INF, je te rassure que t'as pas besoin d'une préinitialisation quelconque, dans ton log4j.xml ou properties tu donnes le chemin du fichier de log, le niveau de log, et beaucoup d'autres paramètres voila une exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    log4j.rootLogger=FATAL,
    log4j.logger.mon.appli=DEBUG, stdout, R
     
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
     
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n 
     
    log4j.appender.R=org.apache.log4j.RollingFileAppender 
    log4j.appender.R.File=example.log 
     
    log4j.appender.R.MaxBackupIndex=1 
     
    log4j.appender.R.layout=org.apache.log4j.PatternLayout 
    log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
    Et pour une doc plus complète ici. C'est bien la 1ere fois que je vois ce type de préinitialisation

  5. #5
    Membre actif

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    171
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 171
    Points : 218
    Points
    218
    Par défaut
    Bonjour,

    @DevServlet
    A mon avis il n'utilise pas Log4j.
    En voyant le package référencé dans la fameuse première ligne, je pense qu'il utilise l'API de logging qui existe de base dans Java.

    @BaStaub
    La ligne "en plus" qui s'insère automatiquement est tout à fait normale.
    Par défaut, dans l'API logging de java, chaque message se trouve loggé sur deux lignes. La ligne que tu vois en plus est en fait la première ligne de ce message : elle t'indique l'heure où le message a été loggé, et le logger qui l'a loggée.
    Si cela te gêne vraiment, il est possible de "supprimer" ce comportement en créant ta propre sous-classe de Formatter, et en l'instantiant à la place du SimpleFormatter que tu utilises pour le moment.

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Le seul intérêt que je vois à une initialisation dynamique c'est que le chemin du fichier soit dynamique... ou n'importe quel paramètre du logger... mais est-ce le cas ?

  7. #7
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Citation Envoyé par aurelman Voir le message
    Bonjour,

    @DevServlet
    A mon avis il n'utilise pas Log4j.
    En voyant le package référencé dans la fameuse première ligne, je pense qu'il utilise l'API de logging qui existe de base dans Java.

    @BaStaub
    La ligne "en plus" qui s'insère automatiquement est tout à fait normale.
    Par défaut, dans l'API logging de java, chaque message se trouve loggé sur deux lignes. La ligne que tu vois en plus est en fait la première ligne de ce message : elle t'indique l'heure où le message a été loggé, et le logger qui l'a loggée.
    Si cela te gêne vraiment, il est possible de "supprimer" ce comportement en créant ta propre sous-classe de Formatter, et en l'instantiant à la place du SimpleFormatter que tu utilises pour le moment.
    Merci pour l'info @aurelman, j'ai appris , mais bon pourquoi s'emmerder avec une surcharge de code supplémentaire pour logger alors qu'une simple config de fichier suffit à faire le même boulot, mais ceci dit t'as répondu à sa prémière préoccupation.

  8. #8
    Membre actif

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    171
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 171
    Points : 218
    Points
    218
    Par défaut
    Bonjour.

    En fait, l'API de logging Java peut être configurée avec un fichier de properties. Le fichier de Properties de configuration est à passer de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -Djava.util.logging.config.file=<nom_fichier>
    Cependant, on ne peut pas via cette configuration, définir le format d'affichage des messages de log. (Pour ce faire, il "suffirait" de définir une sous classe de Formatter qui lise dans une property le format d'affichage à utiliser).


    Sinon, il y a un tuto sur ce site pour ce qui concerne l'API de logging java.
    http://cyberzoide.developpez.com/java/logging/

  9. #9
    Membre régulier
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    Merci je vais regarder... je me suis tenu assez loin du Java ces dernieres semaines

Discussions similaires

  1. avoir une ligne sélectionné par défaut dans un jtable
    Par minanoun dans le forum Composants
    Réponses: 4
    Dernier message: 12/04/2009, 19h15
  2. Réponses: 2
    Dernier message: 24/03/2008, 11h35
  3. Réponses: 11
    Dernier message: 13/09/2006, 10h56
  4. Réponses: 1
    Dernier message: 25/01/2006, 12h07
  5. Valeur par défaut dans une table objet
    Par Ricky81 dans le forum Oracle
    Réponses: 12
    Dernier message: 18/03/2004, 11h52

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