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

Spring Java Discussion :

Log4J et logs perdus


Sujet :

Spring Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    octobre 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2003
    Messages : 29
    Points : 47
    Points
    47
    Par défaut Log4J et logs perdus
    Bonjour,

    Je rencontre un problème avec Log4J dans mon application SpringBatch (Hibernate3 + JPA).
    J'utilise log4j-1.2.17.jar.

    Pour information projet contient aussi les jar(s) suivants :
    slf4j-api-1.6.6.jar (Hibernate)
    slf4j-nop-1.6.6.jar (Hibernate)
    commons-logging-1.1.1.jar (Spring)

    Pour faire simple mes batchs sont lancés par un ordonanceur général et je perds parfois les logs...le fichier ne se génère pas...cela arrive de temps en temps sans explications...à des heures différentes et sans erreurs remontées (enfin c'est difficile à voir puisque c'est un batch et c'est Log4J qui est censé remontrer les erreurs)

    Voici le fichier de configuration. Si vous trouvez des erreurs merci de me les indiquer...

    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
    59
    60
    61
    62
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration debug="false"
    	xmlns:log4j="http://jakarta.apache.org/log4j/">
     
    	<!-- First Appender, DEBUG to INFO messages -->
    	<appender name="fileinfo" class="org.apache.log4j.DailyRollingFileAppender">
    		<param name="file" value="${logfile.name}" />
    		<param name="DatePattern" value="'.'yyyy-MM-dd"/>
    		<param name="Append" value="true"/>
    		<param name="ImmediateFlush" value="true"/>		
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern" value="%d %5p %c{1} - %m%n" />
    		</layout>
    		<filter class="org.apache.log4j.varia.LevelRangeFilter">
    			<param name="levelMin" value="INFO" />
    			<param name="levelMax" value="INFO" />
    		</filter>
    	</appender>
    	<!-- Second Appender, WARN to FATAL errors message -->
    	<appender name="fileerror" class="org.apache.log4j.DailyRollingFileAppender">
    		<param name="file" value="${errfile.name}" />
    		<param name="DatePattern" value="'.'yyyy-MM-dd"/>
    		<param name="Append" value="true"/>
    		<param name="ImmediateFlush" value="true"/>	
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern" value="%d %5p %c{1} - %m%n" />
    		</layout>
    		<filter class="org.apache.log4j.varia.LevelRangeFilter">
    			<param name="levelMin" value="WARN" />
    			<param name="levelMax" value="FATAL" />
    		</filter>
    	</appender>
    	<!-- Console Appender -->
    	<appender name="console" class="org.apache.log4j.ConsoleAppender">
    		<param name="threshold" value="INFO" />
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern" value="%d %5p %c{1} - %m%n" />
    		</layout>
    	</appender>
    	<logger name="org.springframework" additivity="false">
    		<level value="WARN" />
    		<appender-ref ref="fileerror" />
    		<appender-ref ref="console" />
    	</logger>
    	<logger name="org.hibernate" additivity="false">
    		<level value="WARN" />
    		<appender-ref ref="fileerror" />
    		<appender-ref ref="console" />
    	</logger>
    	<logger name="org.hibernate.cfg" additivity="false">
    		<level value="WARN" />
    		<appender-ref ref="fileerror" />
    		<appender-ref ref="console" />
    	</logger>
    	<root>
    		<appender-ref ref="fileinfo" />
    		<appender-ref ref="fileerror" />
    		<appender-ref ref="console" />
    	</root>
    </log4j:configuration>
    Je ne comprends pas ce qu'il se passe...

    Merci par avance.
    It's time to kickass nvidia and chew 3dfx/ati bubblegum !

  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,

    Je crois que SL4J-NOP ne log rien. Si tu veux que SL4J trace avec LOG4J il faut utiliser un jar SL4J-LOG4J.


    sl4j-nop :
    silently discarding all logging.
    De plus ton fichier log4j.xml est-il bien à la racine du classpath ? Et est-ce qu'il s'apelle bien "log4j.xml" ?


    Idem avec commons logging, il faut le rediriger sur log4j.

    Fichier commons-logging.properties à mettre dans le classpath :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    octobre 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2003
    Messages : 29
    Points : 47
    Points
    47
    Par défaut
    Merci pour ces réponses.

    Alors mon fichier "log4j.xml" placé dans le classpath.
    J'ai remplacé le SL4J-NOP par le SL4J-LOG4J.

    J'ai suivi les "instructions" pour le commons-logging.properties.

    Le résultat est toujours le même...

    Pensez-vous que si je ne me sert plus de "log4J" mais plutôt de SL4J ou commons-logging cela fonctionnera mieux ?
    Quel sont les modifications à effectuer dans le cas...je suppose que le fichier log4J.xml doit changer aussi ??? Avez-vous des tutoriels ou exemples à me fournir.

    Je tiens aussi a préciser que les Job qui ne "font" pas de log, écrivent par ailleurs un fichier "CSV" sans problème et à tous les coups...

    Merci par avance.
    It's time to kickass nvidia and chew 3dfx/ati bubblegum !

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    octobre 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2003
    Messages : 29
    Points : 47
    Points
    47
    Par défaut
    Salut à tous,

    J'ai trouvé "comment" reproduire mon problème.

    Mes Jobs sont lancé via un grid computing (LSF) et utilise des machines (sous Windows XP) où il y a potentiellement des utilisateurs sur les postes.

    Lorsque personne n'est connecté (session fermée) le log se génère bien, si une personne ouvre une session avec son compte le log ne se génère plus.

    Avez-une idée de pourquoi Log4J refuse d'écrire dans un fichier une personne est loggée sur la machine ?

    Merci par avance.
    It's time to kickass nvidia and chew 3dfx/ati bubblegum !

  5. #5
    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
    Un problème de droits d'accès au dossier des logs en tant qu'utilisateur connecté ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    octobre 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2003
    Messages : 29
    Points : 47
    Points
    47
    Par défaut
    J'ai trouvé la solution...Je passe le chemin complet plutôt qu'un chemin relatif et tout fonctionne...étrange...
    It's time to kickass nvidia and chew 3dfx/ati bubblegum !

Discussions similaires

  1. [Log4j / Linux] Logs non créés
    Par router_ dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 12/08/2011, 12h14
  2. [log4J] Mes logs contient des msg Spring ?
    Par rimas2009 dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 22/05/2010, 19h47
  3. Log4j commons logging ou stackTrace
    Par jicaygg dans le forum Logging
    Réponses: 4
    Dernier message: 20/05/2010, 11h30
  4. [Log4j]Cherche visualiseur de fichiers logs de log4j
    Par RolandB dans le forum Logging
    Réponses: 9
    Dernier message: 18/03/2009, 16h11
  5. [LOG4J][API java.util.logging.*] Differences
    Par Righetto Dominique dans le forum Logging
    Réponses: 2
    Dernier message: 22/11/2004, 16h12

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