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 :

Logger redirigé dans un fichier plutôt que dans la console


Sujet :

Logging Java

  1. #1
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 200
    Points : 52
    Points
    52
    Par défaut Logger redirigé dans un fichier plutôt que dans la console
    Bonjour,

    Je dispose du fichier de configuration log4j suivant :

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- History
    	$Id: log4j.template.xml 511 2009-06-15 11:31:50Z juul7440 $
    -->
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">
     
    	<!-- ======================== -->
    	<!-- Definition des appenders -->
    	<!-- ======================== -->
     
    	<!-- Appender du fichier de log des erreurs de l'application -->
    	<appender name="ErrorLog" class="org.apache.log4j.DailyRollingFileAppender">
    		<param name="File" value="C:/toto_errors.log"/>
    		<param name="DatePattern" value="'_'yyyy-MM-dd'.txt'"/>
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern" value="%d %-5p [%c - %F:%L] - %m%n"/>
    		</layout>
    		<filter class="org.apache.log4j.varia.LevelRangeFilter">
    			<param name="levelMin" value="ERROR"/>
    		</filter>
    	</appender>
    	<!-- Appender du fichier de log général de l'application -->
    	<appender name="MainLog" class="org.apache.log4j.DailyRollingFileAppender">
    		<param name="File" value="C:/toto_main.log"/>
    		<param name="DatePattern" value="'_'yyyy-MM-dd'.txt'"/>
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern" value="%d %-5p [%c - %F:%L] - %m%n"/>
    		</layout>
    	</appender>
     
     
    	<!-- Appender de sortie console de l'application -->
    	<appender name="StdOut" class="org.apache.log4j.ConsoleAppender">
    		<param name="Target" value="System.out"/>
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern" value="%d{ABSOLUTE} %-4r %-5p %18c{1} - %m%n"/>
    		</layout>
    	</appender>
     
    	<!-- ====================== -->
    	<!-- Definition des loggers -->
    	<!-- ====================== -->
     
    	<!-- Logger racine -->
    	<root>
    		<level value="INFO"/>
    		<appender-ref ref="MainLog"/>
    		<appender-ref ref="ErrorLog"/>
    	</root>
     
    	<logger name="org.apache.cxf" >
    		<level value="DEBUG" />
    		<appender-ref ref="StdOut"/>
    	</logger>	
     
    </log4j:configuration>

    Je souhaite que les logs >= info, de mon application soit dirigés vers mon fichier toto main.txt
    en revanche je souhaite que tout mes logs CXF soit en DEBUG vers la console.

    Or le résultat actuel fait que tout mes logs confondus sont mis dans le fichier toto_main.txt....

    pourquoi ?

    Je vous remercie pour vos réponses

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,
    Essaye l'attribut additivity :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <logger name="org.apache.cxf" aditivity="false">
    Par contre tu devrais les avoir dans les fichiers ET dans la console.

  3. #3
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 200
    Points : 52
    Points
    52
    Par défaut
    techniquement qu'elles sont les conséquence de mettre de additivity ?

    j'ai l'impression que je perd des infos (plus rien dans le fichier)

    j'ai tester une deuxième solution, de rajouter un filter INFO sur mon appender fichier, là je garde tous les logs.


    Pouvez vous me confirmer la chose suivante ? :
    Est-ce que le logger "org.apache.cxf" est "compris" dans le logger root ?

    Car sinon je ne comprends pas pourquoi les logs se retrouvent dans le fichier...

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    L'additivité sert à ce que tes logs de CFX ne passent que par l'appender de CFX et pas par celui du root (Hérité).

    http://veerasundar.com/blog/2009/08/...-what-and-why/

  5. #5
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 200
    Points : 52
    Points
    52
    Par défaut
    donc si je comprend bien, si je met l'additivity à true, les log cxf ne passe que par ce logger.
    si je le met pas, alors il passe par ce logger ET par le logger root (qui je suppose englobe tous les autres possibles)

    en revanche comment ça se fait que mon logger root qui est level value INFO ne filtre pas que sur les infos, en effet je retrouve dans mon fichier les log de cxf en DEBUG ...

Discussions similaires

  1. Recherche dans un fichier impossible enregistré dans un fichier
    Par cdjkhdjlhxjklnjskznj dans le forum Langage
    Réponses: 19
    Dernier message: 03/12/2014, 00h09
  2. Réponses: 7
    Dernier message: 12/12/2007, 18h52
  3. rediriger les résultats d'un programme dans un fichier avec format spécifié
    Par condor_01 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 27/11/2007, 20h55
  4. rediriger la sortie standard d'eclipse dans un fichier
    Par christianf dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 25/10/2007, 16h29
  5. Réponses: 3
    Dernier message: 20/09/2006, 11h05

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