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] Rien n'est tracé dans mes fichiers, pb dû au log4J.properties ?


Sujet :

Logging Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 29
    Points : 22
    Points
    22
    Par défaut [Log4J] Rien n'est tracé dans mes fichiers, pb dû au log4J.properties ?
    Bonjour,

    Mon projet comporte déjà un fichier log4j.properties sous /WEB-INF/classes et cela fonctionne.

    Je voudrais tracer dans des fichiers séparés l'exécution de certaines procédures. Pour cela j'ai créé 2 nouveaux logger pour 2 packages distincts et 2 appenders de type fichiers pour chacun d'eux.

    Le hic, c'est que les traces ne se font que sur la Console et pas dans mes fichiers.
    Y a t-il un problème dans le log4j.properties ?

    Le voici :
    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
    63
    64
    65
    66
    67
     
    log4j.rootCategory = INFO, CONSOLE, LOGFILE, XMLFILE
     
    # L'appender CONSOLE est associé à la console
    log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
    log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
    # Description du Pattern : date, thread, priorité, message, nom du Logger
    log4j.appender.CONSOLE.layout.ConversionPattern = %d{ABSOLUTE} [%t] %-5p - %m ( %c{1} )%n
     
    # L'appender LOGFILE envoie les traces dans un fichier
    log4j.appender.LOGFILE = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.LOGFILE.DatePattern = '.'yyyy-MM-dd
    log4j.appender.LOGFILE.layout = org.apache.log4j.PatternLayout
    log4j.appender.LOGFILE.layout.ConversionPattern = %d{ABSOLUTE} [%t]  %-5p - %m ( %c{1} )%n
     
    # L'appender XMLFILE envoie les traces dans un fichier XML de log
    log4j.appender.XMLFILE = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.XMLFILE.DatePattern = '.'yyyy-MM-dd
    log4j.appender.XMLFILE.layout = org.apache.log4j.xml.XMLLayout
     
    # L'appender CHAINSAW permet d'envoyer les messages vers ChainSaw (console Log4j de gestion des logs)
    log4j.appender.CHAINSAW = org.apache.log4j.net.SocketAppender
    log4j.appender.CHAINSAW.remoteHost = localhost
    log4j.appender.CHAINSAW.port = 4445
    log4j.appender.CHAINSAW.locationInfo = true
    # Modification du niveau de log pour cet appender
     
    #debug :
    #log4j.appender.CONSOLE.threshold = DEBUG
    #prod :
    Log4j.appender.CONSOLE.threshold = ERROR
     
     
    #==============================================================================================
    # Chemin ABSOLU vers le fichier de trace
     
    log4j.appender.LOGFILE.File = /var/www/WEB-INF/logs/ksup.log
    log4j.appender.XMLFILE.File = /var/www/WEB-INF/logs/ksup.xml
     
    #==============================================================================================
     
    # Modification du niveau de log pour le package com.kosmos
    log4j.logger.com.univ.xml=DEBUG
    log4j.logger.com.jsbsoft.jtf.email=DEBUG
    log4j.logger.com.univ.batch=DEBUG
     
     
    log4j.logger.net.IUFM.gestioncomptebv=DEBUG,CONSOLE,LOGFILEIUFM_BV
    log4j.additivity.net.IUFM.gestioncomptebv.otherstuff=false
     
    log4j.logger.net.IUFM.GestionAD=DEBUG, CONSOLE, LOGFILEIUFM_AD
    log4j.additivity.net.IUFM.GestionAD.otherstuff=false
     
     
    # L'appender LOGFILEIUFM_BV envoie les traces dans un fichier
    log4j.appender.LOGFILEIUFM_BV = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.LOGFILEIUFM_BV.DatePattern = '.'yyyy-MM-dd
    log4j.appender.LOGFILEIUFM_BV.layout = org.apache.log4j.PatternLayout
    log4j.appender.LOGFILEIUFM_BV.layout.ConversionPattern = %d{ABSOLUTE} [%t]  %-5p - %m ( %c{1} )%n
    log4j.appender.LOGFILEIUFM_BV.File = /var/www/GestionBV.log
     
    # L'appender LOGFILEIUFM_AD envoie les traces dans un fichier
    log4j.appender.LOGFILEIUFM_AD = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.LOGFILEIUFM_AD.DatePattern = '.'yyyy-MM-dd
    log4j.appender.LOGFILEIUFM_AD.layout = org.apache.log4j.PatternLayout
    log4j.appender.LOGFILEIUFM_AD.layout.ConversionPattern = %d{ABSOLUTE} [%t]  %-5p - %m ( %c{1} )%n
    log4j.appender.LOGFILEIUFM_AD.File = /var/www/GestionAD.log
    Quelqu'un pourrait-il me dire ce qui ne va pas ?

    Sandrine

  2. #2
    Expert éminent sénior
    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
    Points : 48 807
    Points
    48 807
    Par défaut
    t'aurais pas oublié de préciser les nom de tes fichiers??

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Nop je ne pense pas car j'ai bien mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    log4j.appender.LOGFILE.File = /var/www/WEB-INF/logs/ksup.log
    ...
    Peut-être y a t'-il un soucis avec le moyen d'appeler le logger dans mon code.
    Dans ma classe je crée un attribut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private static Logger logger = Logger.getLogger(CompteBV.class.getName());
    puis dans le constructeur de la classe je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BasicConfigurator.configure();
    Est-ce bon comme façon de procéder ? Faut-il faire appel au BasicConfigurator dans tous les constructeurs des classes qui doivent logger ?

    Merci,
    Sandrine

  4. #4
    Expert éminent sénior
    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
    Points : 48 807
    Points
    48 807
    Par défaut
    ha non, t'as pas à faire appel au configurateur de log4j, il est appelé une fois pour toutes au début de l'application, par le premier logger qui a besoin de log4j. Si ton log4j.properties est bien accessible (exemple dans WEB-INF/classes) y aura pas de soucis.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    ok merci pour ces précisions .

    J'ai une autre question :

    Dans le cas où l'on souhaite avoir son propre fichier log4.properties, il faut faire appel à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PropertyConfigurator.configure("path de mon fichier properties");
    à la place du BasicConfigurator.configure() , nop ?

    Et de la même façon, il ne faut l'appeler qu'une fois et non pas dans toutes les constructeurs des classes ?

    Merci encore,
    Sandrine

  6. #6
    Expert éminent sénior
    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
    Points : 48 807
    Points
    48 807
    Par défaut
    oui, tu ne configure qu'une fois. Sinon, ce sera la folie, à chaque chargement de classe un parsing du fichier log4j.properties :s

    Sans compter les risques d'oublier des classe si tu change le path un jour!

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/03/2013, 18h55
  2. Aucun message n'est écrit dans le fichier erreurs de Sybase
    Par bouzahme dans le forum Adaptive Server Enterprise
    Réponses: 5
    Dernier message: 26/07/2010, 21h56
  3. Des scripts JS malsains dans mes fichiers index
    Par renaud26 dans le forum Sécurité
    Réponses: 2
    Dernier message: 22/04/2009, 17h43
  4. Rien ne s'inscrit dans mon fichier log
    Par zouuc dans le forum Logging
    Réponses: 5
    Dernier message: 29/01/2009, 15h48
  5. Réponses: 2
    Dernier message: 07/08/2007, 18h41

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