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] Séparer les niveaux dans différents fichiers .properties


Sujet :

Logging Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2016
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2016
    Messages : 46
    Par défaut [Log4j] Séparer les niveaux dans différents fichiers .properties
    Bonjour à toutes et à tous,

    Pour les besoins d'un projet je dois mettre en place des logs sur mon application.

    C'est une application j2e, et j'utilise tomcat7.

    Pour cela j'utilise l'api Log4j.

    J'arrive à log différentes choses sans problème.

    Mon soucis c'est que je voudrais organiser mes logs par niveaux exemple :

    Les logs niveau DEBUG dans un fichier debug.log (par exemple)

    Les logs niveau INFO dans un fichier info.log

    etc pour quasiment tous les niveaux.



    je vous mets mon fichier .properties j'ai fait une tentative mais c'est pas concluant tous va dans le même fichier

    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
     
    log4j.rootLogger=INFO, stdout, file
     
    # Redirect log messages to console
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
     
    # Redirect log messages to a log file.
    log4j.appender.file=org.apache.log4j.RollingFileAppender
    log4j.appender.file.Threshold=INFO
    log4j.appender.file.File=C:\\log4j-application.log
    log4j.appender.file.MaxFileSize=5MB
    log4j.appender.file.MaxBackupIndex=10
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
     
     
    # test dun 2eme logger
     
    log4j.Logger.log=DEBUG, outTest, fichier
     
    # console
    log4j.appender.outTest=org.apache.log4j.ConsoleAppender
    log4j.appender.outTest.Target=System.out
    log4j.appender.outTest.layout=org.apache.log4j.PatternLayout
    log4j.appender.outTest.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
     
    #autre fichier
    log4j.appender.fichier=org.apache.log4j.RollingFileAppender
    log4j.appender.fichier.File=C:\\log4j-info.log
    log4j.appender.fichier.MaxFileSize=5MB
    log4j.appender.fichier.MaxBackupIndex=10
    log4j.appender.fichier.layout=org.apache.log4j.PatternLayout
    log4j.appender.fichier.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
    Merci pour votre aide

  2. #2
    Membre éprouvé Avatar de bygui
    Homme Profil pro
    PLM/ALM
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : PLM/ALM
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Par défaut
    Bonjour Jaythor,

    Le problème semble venir de la définition de tes appenders.
    Il faut que tu redéfinisses un appender pour chaque niveau et que tu les appelles dans ta classe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    log4j.logger.<mon_composant>=<level [info, debug,...]>, <nom>
    Ensuite la définition devrait être de ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    log4j.appender.<nom>=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.<nom>.File=<mon log>.log
    log4j.appender.<nom>.DatePattern='.'yyyy-MM-dd
    log4j.appender.<nom>.layout=org.apache.log4j.PatternLayout
    Cela donnerait un truc du genre:
    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
    # 
    log4j.rootLogger=ERROR, appenderDebug, appenderError
     
    log4j.Logger.<mespackages.maclasse>=DEBUG, appenderDebug
    log4j.Logger.<mespackages.maclasse>=ERROR, appenderError
     
    log4j.appender.appenderDebug=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.appenderDebug.File=<logFile>.log
    log4j.appender.appenderDebug.DatePattern='.'yyyy-MM-dd
    log4j.appender.appenderDebug.layout=org.apache.log4j.PatternLayout 
     
    log4j.appender.appenderError=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.appenderError.File=<logFile>.log
    log4j.appender.appenderError.DatePattern='.'yyyy-MM-dd
    log4j.appender.appenderError.layout=org.apache.log4j.PatternLayout
    Le problème est que log4j fonctionne par niveau. Si tu actives INFO, tout les niveaux supérieurs seront actifs, ce qui inclus DEBUG et ERROR.
    Ton fichier ne contiendras donc pas seulement les messages de type INFO mais bien tous les messages.
    Je crois que ce n'est pas ce que tu veux.

    Il ne te reste donc plus qu'a coder ton propre logger, car il me semble que ce soit la solution la plus simple dans ton cas.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2016
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2016
    Messages : 46
    Par défaut
    ok merci je vais voir ce que je peux faire

  4. #4
    Membre éprouvé Avatar de bygui
    Homme Profil pro
    PLM/ALM
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : PLM/ALM
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Par défaut
    Pense à indiquer le et à mettre ta solution si la mienne n'est pas assez complète

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2016
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2016
    Messages : 46
    Par défaut
    D'accord dès que je trouve une solution convenable

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2016
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2016
    Messages : 46
    Par défaut
    Petite précision quand même (Corrige moi si je me trompe) je crois que le level INFO est supérieur au level DEBUG non ?

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/10/2010, 15h08
  2. Réponses: 0
    Dernier message: 01/06/2010, 13h41
  3. [Log4j] Problème d'écriture dans des fichiers différents
    Par pathfinder06 dans le forum Logging
    Réponses: 5
    Dernier message: 14/04/2008, 11h12
  4. Placer les requetes dans des fichiers properties
    Par rach375 dans le forum JDBC
    Réponses: 5
    Dernier message: 11/07/2006, 15h04
  5. Réponses: 4
    Dernier message: 10/02/2005, 16h10

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