Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1076 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Log4j : je ramasse TOUS les logs générés par log4j, ça fait trop !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Log4j : je ramasse TOUS les logs générés par log4j, ça fait trop !

n°360647
El_gringo
Posté le 14-04-2003 à 16:48:27  profilanswer
 

Alors, je configure mon log comme ceci :
 


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
 
<log4j:configuration>
        <appender name="A_1" class="org.apache.log4j.DailyRollingFileAppender">
            <!-- La valeur suivante est le chemin du fichier dans lequel le log sera inscrit.  
                 Chemin complet imperatif.  
                 Ne pas oublier de doubler les "\"  
            -->
            <param name="File"   value="C:\\Tomcat4\\logs\\LdsWeb2.log" />
            <param name="Append" value="true" />
            <param name="DatePattern" value="'.'yyyy-MM-dd" />
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{3}] - %m%n"/>
            </layout>
        </appender>
 
        <category name="org.apache.log4j.xml">
          <appender-ref ref="A_1" />
        </category>
 
        <root>
           <!-- La valeur suivante est le niveau du log.
                Valeurs possible : "debug", "info", "warn", "error'  
           -->
           <priority value ="warn" />
           <appender-ref ref="A_1" />
        </root>
</log4j:configuration>


 
Apparement, Tomcat 4.1 utilise Log4j aussi. Avec la config que j'ai là, je me ramsse TOUS les logs de tomcat, alors que le log est censé être celui de ma webapp uniquement.
Dans mon appli, j'ai bien géré les histoires de hiérarchie de Logger, en donant à chacun d'eux le nom complet de la classe à laquelle ils appartiennent.
Du coup, il faudrait que j'arrive à préciser que la config ci-dessus ne concerne QUE les Logger "com.monapp". Je sais que c possible, ms j'arrive pas à trouver comment. Helllp !


Message édité par El_gringo le 14-04-2003 à 16:59:34
mood
Publicité
Posté le 14-04-2003 à 16:48:27  profilanswer
 

n°360662
souk
Tourist
Posté le 14-04-2003 à 17:01:45  profilanswer
 

j'ai trouve un lien qui parlait de ca justement tout a l'heure, mais je l'ai au boulot, je pourrait te le filer demain (vers 3h heure francaise donc...desole, decalage horaire :) )

n°360670
darklord
You're welcome
Posté le 14-04-2003 à 17:05:48  profilanswer
 

tu changes la categorie ...
 

Code :
  1. <category name="com.tasociete.tonpackage">
  2.     <appender-ref ref="A_1" />
  3.   </category>


 
tiens j'ai déjà vu ce code là quelque part [:meganne]


---------------
Just because you feel good does not make you right
n°360683
El_gringo
Posté le 14-04-2003 à 17:18:32  profilanswer
 

DarkLord a écrit :

tu changes la categorie ...
 

Code :
  1. <category name="com.tasociete.tonpackage">
  2.     <appender-ref ref="A_1" />
  3.   </category>


 
tiens j'ai déjà vu ce code là quelque part [:meganne]


 
Ha oui !? tu crois ?Je vois pas où tu as pu le voir ! :ange:  
D'ailleurs, au passage, j'ai lu dans la doc qu'il vaut mieux utiliser la classe Logger que Category maintenant. Logiquement, dans les fichiers de config aussi, tu crois pas ?
Et merci pour ta réponse bien sûr.

n°360685
El_gringo
Posté le 14-04-2003 à 17:20:28  profilanswer
 

Au départ, c ce que je pensais faire : changer le nom du Logger (Category) "root", mais g été troublé quand j'ai vu qu'au départ, dans la config "standard" que tu m'avais filée, le nom est "org.apache.log4j.xml" !?

n°361002
the real m​oins moins
Posté le 14-04-2003 à 22:41:29  profilanswer
 

El_gringo a écrit :


 
Ha oui !? tu crois ?Je vois pas où tu as pu le voir ! :ange:  
D'ailleurs, au passage, j'ai lu dans la doc qu'il vaut mieux utiliser la classe Logger que Category maintenant. Logiquement, dans les fichiers de config aussi, tu crois pas ?
Et merci pour ta réponse bien sûr.

Category est un Logger, et à priori, au niveau config, ils n'ont pas changé le nommage.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°361141
El_gringo
Posté le 15-04-2003 à 08:51:43  profilanswer
 

the real moins moins a écrit :

Category est un Logger, et à priori, au niveau config, ils n'ont pas changé le nommage.


 
J'dirais plutôt que Logger est une Category, vu qu'il en hérite. Enfin, c peu être du chippotage, ms qd même!

n°361161
darklord
You're welcome
Posté le 15-04-2003 à 09:04:39  profilanswer
 

El_gringo a écrit :

Au départ, c ce que je pensais faire : changer le nom du Logger (Category) "root", mais g été troublé quand j'ai vu qu'au départ, dans la config "standard" que tu m'avais filée, le nom est "org.apache.log4j.xml" !?


 
oui c'est entièrement ma faute et c'était à mes débuts de log4j. Je concède que ca complique plus qu'autre chose.
 
En gros ce que tu dois faire si tu veux des logs divers pour une meme application:
 
1/ Definir un appender qui représente l'output (typiquement un fichier avec un patterlayout)
 
2/ Attacher à chaque appender une catégorie qui donne:
   - la racine des classes qui sont traitées par cette catégorie (par exemple org.apache.axis est utilisé pour loguer tout le traffic SOAP)
 
3/ Ajouter l'attribut additivity="false" si tu ne veux pas que tes logs soient dupliqués 300 *
 
4/ Avoir une catégorie "par défaut" où les autres logs vont et y attacher le root
 
Ca te donne un truc du genre
 

Code :
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
  3. <log4j:configuration>
  4.   <appender name="main" class="org.apache.log4j.DailyRollingFileAppender">
  5.     <param name="File"   value="../log/mr_sms.log" />
  6.     <param name="Append" value="true" />
  7.     <param name="DatePattern" value="'.'yyyy-MM-dd" />
  8.     <layout class="org.apache.log4j.PatternLayout">
  9.       <param name="ConversionPattern" value="%d{ISO8601} [%-9.9t] %-5p %-30.30c - %m%n"/>
  10.     </layout>     
  11.   </appender>
  12.      
  13.   <appender name="persistence" class="org.apache.log4j.DailyRollingFileAppender">
  14.     <param name="File"   value="../log/db_access.log" />
  15.     <param name="Append" value="true" />
  16.     <param name="DatePattern" value="'.'yyyy-MM-dd" />
  17.     <layout class="org.apache.log4j.PatternLayout">
  18.       <param name="ConversionPattern" value="%d{ISO8601} [%-9.9t] %-5p %-30.30c - %m%n"/>
  19.     </layout>     
  20.   </appender>
  21.        
  22.   <appender name="inbound" class="org.apache.log4j.DailyRollingFileAppender">
  23.     <param name="File"   value="../log/parser.log" />
  24.     <param name="Append" value="true" />
  25.     <param name="DatePattern" value="'.'yyyy-MM-dd" />
  26.     <layout class="org.apache.log4j.PatternLayout">
  27.       <param name="ConversionPattern" value="%d{ISO8601} [%-9.9t] %-5p %-30.30c - %m%n"/>
  28.     </layout>     
  29.   </appender>
  30.        
  31.   <appender name="outbound" class="org.apache.log4j.DailyRollingFileAppender">
  32.     <param name="File"   value="../log/file_generator.log" />
  33.     <param name="Append" value="true" />
  34.     <param name="DatePattern" value="'.'yyyy-MM-dd" />
  35.     <layout class="org.apache.log4j.PatternLayout">
  36.       <param name="ConversionPattern" value="%d{ISO8601} [%-9.9t] %-5p %-30.30c - %m%n"/>
  37.     </layout>     
  38.   </appender>
  39.        
  40.   <appender name="sms_api" class="org.apache.log4j.DailyRollingFileAppender">
  41.     <param name="File"   value="../log/sms_api.log" />
  42.     <param name="Append" value="true" />
  43.     <param name="DatePattern" value="'.'yyyy-MM-dd" />
  44.     <layout class="org.apache.log4j.PatternLayout">
  45.       <param name="ConversionPattern" value="%d{ISO8601} [%-9.9t] %-5p %-30.30c - %m%n"/>
  46.     </layout>     
  47.   </appender>
  48.        
  49.   <appender name="console" class="org.apache.log4j.ConsoleAppender">                       
  50.     <layout class="org.apache.log4j.PatternLayout">
  51.       <param name="ConversionPattern" value="[%t] %-5p %35.35c{5} - %m%n"/>
  52.     </layout>     
  53.   </appender>
  54.        
  55.   <category name="com.masociete.soft.sms.persistence" additivity="false">
  56.     <appender-ref ref="persistence" />
  57.   </category>
  58.        
  59.   <category name="com.masociete.soft.sms.inbound" additivity="false">
  60.     <appender-ref ref="inbound" />   
  61.   </category>       
  62.                
  63.   <category name="com.masociete.soft.sms.outbound" additivity="false">
  64.     <appender-ref ref="outbound" />   
  65.   </category>
  66.  
  67.   <category name="com.masociete.sms" additivity="false">
  68.     <appender-ref ref="sms_api" />
  69.   </category>
  70.        
  71.   <category name="com.masociete.framework" additivity="false">
  72.     <priority value="warn" />
  73.     <appender-ref ref="main" />
  74.   </category>
  75.        
  76.   <root>
  77.     <priority value ="debug" />
  78.     <appender-ref ref="main" />
  79.   </root>
  80. </log4j:configuration>


 
tu vois que par exemple je n'ai pas envie de me chopper les logs du framework donc je garde l'appender par défaut mais je mets la priorité à warning de sorte que debug/info soient droppés
 


---------------
Just because you feel good does not make you right
n°368620
El_gringo
Posté le 22-04-2003 à 17:29:20  profilanswer
 

Mais ce que je voudrais moi, c'est que Tomcat garde sa config par défaut de log4j, et que moi, je puisse configurer uniquement les logger utilisés par ma webapp (logger dont le nom commence par "com.maboite.monappli" ).
Quand je fais ça :


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
 
<log4j:configuration>
       <appender name="A_1" class="org.apache.log4j.DailyRollingFileAppender">
           <!-- La valeur suivante est le chemin du fichier dans lequel le log sera inscrit.  
                Chemin complet imperatif.  
                Ne pas oublier de doubler les "\"  
           -->
           <param name="File"   value="C:\\Tomcat4\\logs\\LdsWeb2.log" />
           <param name="Append" value="true" />
           <param name="DatePattern" value="'.'yyyy-MM-dd" />
           <layout class="org.apache.log4j.PatternLayout">
               <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{3}] - %m%n"/>
           </layout>
       </appender>
 
       <category name="com.maboite.monappli">
         <appender-ref ref="A_1" />
       </category>
 
       <root>
          <!-- La valeur suivante est le niveau du log.
               Valeurs possible : "debug", "info", "warn", "error'  
          -->
          <priority value ="warn" />
          <appender-ref ref="A_1" />
       </root>
</log4j:configuration>  

 
 
ça écrit encore les messages générés par Tomcat, mais en plus, ça écrit 2 fois les mienx (ceux issus de logger dont le nom commence pas "com.maboite.monappli" ).
Tu vois une explication ? Une solution à ça ?

n°369120
darklord
You're welcome
Posté le 23-04-2003 à 08:39:08  profilanswer
 

bin tu as une config de log4j par virtual machine [:spamafote]
 
donc si tu fait un DOMConfigurator dans une de tes servlets bin c'est ce fichier là qui est utilisé quoi [:spamafote]
 
enlève déjà l'élément root dans le fichier de conf (tu définis uniquement tes categories et appenders
 
et je t'ai dit d'ajouter additivity="false" pour ne pas avoir les logs en doublons :sarcastic:
 
<category name="com.masociete.soft.sms.persistence" additivity="false">
  <appender-ref ref="persistence" />
</category>
       


---------------
Just because you feel good does not make you right
mood
Publicité
Posté le 23-04-2003 à 08:39:08  profilanswer
 

n°369146
El_gringo
Posté le 23-04-2003 à 09:07:25  profilanswer
 

Merde, c'est vrai que tu me l'avais dit. J'suis vraiment désolé. :jap:  
Merci.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Log4j : je ramasse TOUS les logs générés par log4j, ça fait trop !

 

Sujets relatifs
Log4j ou classe de log faite "maison" ?Log4j lancé pour 2 applications
Ca existe un script pour analyser les logs proxy?Plusieurs fichiers de logs avec Log4j de Jakarta
Log4j composantsLog4j dans le cadre d'une web-app, j'arrive pas !
Quel script PHP utiliser pour faire des logs/stats sur son site ?[Java] Log4j et redirection des infos
suivi des logs sous .htaccess 
Plus de sujets relatifs à : Log4j : je ramasse TOUS les logs générés par log4j, ça fait trop !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR