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 dans un fichier


Sujet :

Logging Java

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Par défaut Logger dans un fichier
    Bonjour à tous

    Je suis en train de découvrir la librairie log4j j'aimerai l'utiliser afin de réaliser des log dans des fichiers pour différentes parties de mon application. Par exemple je souhaiterai avoir un fichier de log pour les inscriptions et les connexions pour cela j'ai définit dans le fichier log4j.xml cette configuration

    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
     
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
     
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
     
    	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern" value="%d - %-5p - %t - %c.%M() #%L: %m%n" />
    		</layout>
    	</appender>
     
    	<appender name="SubscriptionConnexionAppender" class="org.apache.log4j.RollingFileAppender">
    		<param name="file" value=".\\log\\subscriptionconnexion.log"/>
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern" value="%d - %-5p - %t - %c.%M() #%L#%L: %m%n" />
    		</layout>
    		<filter class="org.apache.log4j.varia.LevelRangeFilter">
             <param name="levelMin" value="DEBUG"/>
             <param name="levelMax" value="FATAL"/>
         </filter>
    	</appender>
     
    	<logger name="SubscriptionConnexionLogger">
    		<level value="DEBUG" />
    		<appender-ref ref="SubscriptionConnexionAppender" />
    	</logger>
     
    	<logger name="org.apache">
    		<level value="WARN" />
    	</logger>
     
    	<logger name="org.springframework">
    		<level value="WARN" />
    	</logger>
     
    	<!-- Suppress warnings from Commons Validator -->
    	<logger name="org.apache.commons.validator.ValidatorResources">
    		<level value="WARN" />
    	</logger>
     
    	<root>
    		<level value="WARN" />
    		<appender-ref ref="CONSOLE" />
    	</root>
     
    </log4j:configuration>
    j'y fait appel dans un contrôleur de cette manière

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private final Logger sLOGGER = Logger.getLogger("SubscriptionConnexionLogger");
    Je n'arrive pas à trouver le fichier de log que j'ai donné en paramètre. Comme définir un chemin relatif à un fichier ? Où vais je le retrouver ? Ai-je bien définit mon logger voilà les questions que je me pose et auxquelles je n'ai pour le moment pas de réponse. Votre aide me sera précieuse !!

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    c'est relatif par rapport au répertoire courant, pas par rapport à la classe qui l'utilise. En java on utilise de / pour séparer les éléments d'un chemin, y compris pour les fichiers. Donc ce serait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	<appender name="SubscriptionConnexionAppender" class="org.apache.log4j.RollingFileAppender">
    		<param name="file" value="./log/subscriptionconnexion.log"/>
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern" value="%d - %-5p - %t - %c.%M() #%L#%L: %m%n" />
    		</layout>
    		<filter class="org.apache.log4j.varia.LevelRangeFilter">
             <param name="levelMin" value="DEBUG"/>
             <param name="levelMax" value="FATAL"/>
         </filter>
    	</appender>
    Pour connaitre le répertoire courant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new File(".").getCanonicalPath()

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Par défaut
    le "." correspond au dossier d'Eclipse comment pourrais je indiquer un chemin plus en rapport avec mon projet comme la racine de mon Projet. Il existe une variable correspondant à ça ?

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Par défaut
    J'ai bien modifié les \\ en / mais voilà maintenant il refuse de me mettre les log autres que du DEBUG dans le fichier alors qu'il accepte de me les mettre dans la CONSOLE qui correspond au LOGGER root

    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
     
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
     
    	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern" value="%d - %-5p - %t - %c.%M() #%L: %m%n" />
    		</layout>
    	</appender>
     
    	<appender name="SubscriptionConnexionAppender" class="org.apache.log4j.RollingFileAppender">
    		<param name="file" value="./log/subscriptionconnexion.log"/>
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern" value="%d - %-5p - %t - %c.%M() #%L#%L: %m%n" />
    		</layout>
    		<filter class="org.apache.log4j.varia.LevelRangeFilter">
             <param name="levelMin" value="DEBUG"/>
             <param name="levelMax" value="FATAL"/>
         </filter>
    	</appender>
     
    	<logger name="org.hobr.proto.engine.web.subscription">
    		<level value="DEBUG" />
    		<appender-ref ref="SubscriptionConnexionAppender" />
    	</logger>
     
    	<root>
    		<level value="WARN" />
    		<appender-ref ref="CONSOLE" />
    	</root>
     
    </log4j:configuration>
    voilà comment j'appelle le logger
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    private final Logger sLOGGER = Logger.getLogger("org.horb.proto.engine.web.subscription");
    ...
    sLOGGER.log(Level.ERROR,"Une exception a été levé pour la méthode userExists pour : " + form.getLogin());
    Ce log apparait uniquement dans la console et non dans mon fichier comme les éléments de DEBUG je ne vois pas pourquoi

  5. #5
    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
    Par défaut
    Erreur d'orthographe de logger, voila ce que tu as declaré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <logger name="org.hobr.proto.engine.web.subscription">
    et voila ton appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private final Logger sLOGGER = Logger.getLogger("org.horb.proto.engine.web.subscription");

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Par défaut
    Waouh une erreur aussi bête et je l'ai pas vu quel oeil de lynx merci !!

  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
    Par défaut
    T'inquiètes ca arrive, je suis le 1er à faire ce genre d'erreur . àplus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Logger dans plusieurs fichiers
    Par Cissine dans le forum Logging
    Réponses: 0
    Dernier message: 22/03/2011, 14h34
  2. Logger les evenements de ANT dans un fichier
    Par DevServlet dans le forum ANT
    Réponses: 1
    Dernier message: 16/06/2010, 10h37
  3. Réponses: 4
    Dernier message: 10/12/2009, 19h25
  4. log4j + tomcat logger dans un fichier
    Par jeb001 dans le forum Logging
    Réponses: 7
    Dernier message: 21/03/2008, 16h36
  5. Insertion dans un fichier pour un logger.
    Par Clad3 dans le forum XML
    Réponses: 13
    Dernier message: 09/01/2007, 23h08

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