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 :

Log4j.xml exlure une classe


Sujet :

Logging Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 62
    Par défaut Log4j.xml exlure une classe
    Bonjour,

    Je souhaiterai logger spécifiquement une classe dans un fichier de logs.
    J'ai donc fait un appender spécifique ainsi qu'un logger pour cette classe.
    Le souci est que cette classe est également logger dans le logger de plus haut niveau qui log le package entier.
    Comment faire pour "exclure" ma classe de ce logger ?

    Exemple de mon log4j.xml :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?xml version="1.0" encoding="UTF-8" ?>
     
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
    	debug="false">
    	<appender name="testTracesSpec"   class="org.apache.log4j.DailyRollingFileAppender">
    		<errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler" />
    		<param name="File"
    			value="${jboss.server.home.dir}/log/tracesSpec.log" />
    		<param name="Append" value="true" />
    		<param name="DatePattern" value="'.'yyyy-MM-dd" />
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern" value="%d{yyyy MM dd - HH:mm:ss,SSS} %-5p %m%n" />
    		</layout>
    	</appender>
     
    	<appender name="appli" class="org.apache.log4j.DailyRollingFileAppender">
    		<errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler" />
    		<param name="File" value="${jboss.server.home.dir}/log/log_appli.log" />
    		<param name="Append" value="true" />
    		<param name="DatePattern" value="'.'yyyy-MM-dd" />
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern" value="%d{yyyy MM dd - HH:mm:ss,SSS} %-5p %m%n" />
    		</layout>
    	</appender>
    	<logger name="appli">
    		<level value="DEBUG" />
    		<appender-ref ref="appli" />
    	</logger>
    	<logger name="appli.presentation.initialisation">
    		<level value="INFO" />
    		<appender-ref ref="testTracesSpec" />
    	</logger>
    	<root>
    		<level value="INFO" />
    		<appender-ref ref="appli" />
    	</root>
    </log4j:configuration>
    J'aimerai donc que la classe qui se trouve dans appli.presentation.initialisation soit logger uniquement dans le fichier tracesSpec.log et pas dans appli.log

    Merci d'avance pour votre aide,

  2. #2
    Membre Expert
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Par défaut
    C'est un problème d'additivité. Jette un oeil sur le manuel (http://logging.apache.org/log4j/1.2/manual.html), section "Appenders and Layouts".
    Bon courage !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 62
    Par défaut Additivity=false?
    J'ai essayé de modifier mon log4j.xml de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <logger name="appli" additivity="false">
    	<level value="DEBUG" />
    	<appender-ref ref="appli" />
    </logger>
    <logger name="appli.presentation.initialisation" additivity="false">
    	<level value="INFO" />
    	<appender-ref ref="testTracesSpec" />
    </logger>
    La classe qui est dans appli.presentation.initialisation est bien loggé uniquement avec l'appender testTracesSpec. Le problème est que l'appender appli ne loggue plus rien du tout !

    JE comprends pas bien pourquoi ...

  4. #4
    Membre Expert
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Par défaut
    A mon avis, ton logger "appli" est en trop, puisque tu utilises root. Essaies de l'enlever (j'ai pas testé).

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/12/2010, 17h58
  2. Réponses: 2
    Dernier message: 10/02/2010, 14h40
  3. Réponses: 7
    Dernier message: 15/09/2009, 15h54
  4. Réponses: 0
    Dernier message: 29/10/2007, 14h28
  5. Réponses: 8
    Dernier message: 09/07/2005, 23h10

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