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

Tomcat et TomEE Java Discussion :

[TomCat & Log4j]


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 79
    Points : 42
    Points
    42
    Par défaut [TomCat & Log4j]
    Salut,

    J'ai un serveur tomcat sur lequel je fais tourner une petite application.
    Je souhaite utiliser log4j pour logger des infos.

    J'ai creer le fichier de cofig "log4j.properties" que j'ai placé a la racine du repertoire "WEB-INF/class".

    dans une servlet, j'ai ajouté un attribut :
    static Logger logger = Logger.getLogger(Test.class.getName());

    Mes appenders pointent tous vers ConsoleAppender.


    Je lance tomcat depuis eclipse, au chargement de la page liée à la servlet,
    Mais la rien n'est redirigé vers la console éclipse


    Pouvez vous m'aider SVP

  2. #2
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    As-tu un message d'erreur?
    Sinon, peut tu donner ton log4j.properties?

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 79
    Points : 42
    Points
    42
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # skip messages with priority lower than DEBUG
    log4j.rootCategory=DEBUG, dest1
     
    # dest1 logging destinations to ConsoleAppender (writes to system console)
    log4j.appender.dest1=org.apache.log4j.ConsoleAppender
     
    # dest1 uses PatternLayout.
    log4j.appender.dest1.layout=org.apache.log4j.PatternLayout
     
    # to print the priority you assigned to the message (%p)
    # %p : priority, %m : message, %n : new line
    log4j.appender.dest1.layout.ConversionPattern=%-5p: %m%n
    Aucun message d'erreur...

  4. #4
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    J'ai remarqué que dans ton log4j.properties, le niveau par défaut à été mis en DEBUG. Essaye de logger en INFO (ou suppérieur si rien en INFO).

    En effet, il se peut qu'un autre fichier de config entre en conflit avec le tien, dans ce cas, c'est le niveau par défaut de cet autre fichier qui sera pris (souvent, c'est le niveau INFO qui est mis par défaut). Par exemple le fichier de log4j de tomcat lui même.

    Si c'est le cas, celà peut être parceque tu n'as pas mis la librairie log4j dans le classpath de ton application (/WEB-INF/lib) donc, ton application utlise l'instance de log4j de tomcat ... et donc le fichier de properties de tomcat.

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 79
    Points : 42
    Points
    42
    Par défaut
    bon apparement tout est pris en compte cad
    tout est bien redirigé vers la console.

    Le hic, c'est que le fichier de config decris plus haut seme la zizanie...
    Tomcat utilise log4j, une API de mon application également. Et tous memes mes logs sont redirigés vers la console avec le niveau définis dans dans ce fameux fichier de config ex :

    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
    INFO: Server startup in 11515 ms
    DEBUG: Start expire sessions StandardManager at 1147868563543 sessioncount 0
    DEBUG: End expire sessions StandardManager processingTime 0 expired sessions: 0
    DEBUG: JspEngine --> /index.jsp
    DEBUG:          ServletPath: /index.jsp
    DEBUG:             PathInfo: null
    DEBUG:             RealPath: D:\appli\Tomcat V5.5.9\webapps\Test\index.jsp
    DEBUG:           RequestURI: /Test/index.jsp
    DEBUG:          QueryString: null
    DEBUG:       Request Params: 
    DEBUG: setting data config on de.laures.cewolf.taglib.tags.SimpleChartTag@15a3a1
    DEBUG: useCache = true
    DEBUG: setDataProductionConfig
    DEBUG: checking data actuality...
    DEBUG: useCache = true
    DEBUG: data key is 100572208 producerId=PageViewCountData DatasetProducer
    DEBUG: getting data..
    Mon souhait est de rendre independant mon fichier de log pour pouvoir traiter mes logs comme je l'entends...

  6. #6
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    Dans ce cas là, il faut mettre une librairie log4j 'plus haut' dans ton classpath.

    Concrétement, tomcat va chercher ta librairie dans les différent classloader (ce qui correspond plus ou moins à différent chemin). Il utilise pour ceci une chaine de classloader, il va ensuite prendre le premier qu'il trouve.

    Dans son chemin à lui, tomcat a une librairie log4j qu'il utilise pour ses propres log.

    Il faut donc que tu mette une librairie dans ton application (donc dans WEB-INF/lob), celle-ci sera prise avant celle de tomcat, et elle chargera le fichier de properties qui est dans son propre classloder (donc celui que tu aurra placer dans WEB-INF/classes).

    Tomcat lui, continuera a utilises ses propres fichier.

  7. #7
    Membre habitué Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Points : 127
    Points
    127
    Par défaut
    Moi je peus pas t'aider mais je voudrais bien savoir à quoi sert Log4J exactement

  8. #8
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 79
    Points : 42
    Points
    42
    Par défaut
    J'ai ajouté dans WEB-INF/lib/log4j-1.2.13.jar depuis le début.

  9. #9
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 79
    Points : 42
    Points
    42
    Par défaut
    Tout viens du fichier de config,

    j'ai ajouté le niveau d'alerte des packages génant, ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # Print only messages of level WARN or above in the package org.apache.catalina.core
    log4j.logger.org.apache.catalina.core=WARN
    Et mon log est propre !

  10. #10
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    Effectivement, ça fonctionne aussi.
    De toute façon, il est toujours conseillé de mettre le root en INFO et de mettre en niveau DEBUG que les parties de codes à débugger : ton appli.

    Plus la configuration est fine, plus elle correspond à tes besion!

    Sinon, normalement il y a moyen de logguer différement Tomcat et ton applis (en exploitant toutes mes explication sur les classloader, librairies, ... ) mais c'est pas toujours facile. Je sais par expérience que LOG4J se comporte toujours bizzarement.


    Pour répondre à questionneuse, LOG4J est un framework qui permet de facilement logguer (donc écrire les messages de log pour suivre le bon déroulement de ton application) des messages vers des appender différents (console, fichier, soket, ...) et avec un configuration par fichier properties qui permet de définir le niveau de LOG par rapport à chaque package JAVA : - site officiel : http://logging.apache.org/log4j/docs/
    - doc sur developpez : http://beuss.developpez.com/tutoriel...jakarta/log4j/

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

Discussions similaires

  1. Logging Tomcat et Log4J
    Par Zaikay dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 07/06/2012, 10h44
  2. Tomcat et log4j
    Par ybebert dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 15/10/2009, 10h08
  3. Tomcat and log4j
    Par mouvma dans le forum Logging
    Réponses: 5
    Dernier message: 19/04/2008, 09h30
  4. Tomcat et log4j
    Par AlienQueen dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 25/10/2007, 17h00
  5. [Tomcat 5.0][Log4j] Il devient fou !!!
    Par yolepro dans le forum Tomcat et TomEE
    Réponses: 9
    Dernier message: 24/04/2004, 21h08

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