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] tra�age de webapps avec log4j


Sujet :

Logging Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Ao�t 2004
    Messages
    4
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4
    Par d�faut [log4j] tra�age de webapps avec log4j
    Bonjour,

    log4j me pose un probl�me dont la solution est sans doute tr�s simple, mais que je ne parviens pas � r�soudre :
    J'ai une web-app qui tourne sous Tomcat. Je voudrais simplement la tracer avec log4j.
    Mon probl�me est que je voudrais un niveau de trace diff�rent pour ma web-app et pour Tomcat.
    J'ai donc plac� dans{TOMCAT_HOME}/common/classes/log4j.properties les confs suivantes :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    log4j.rootLogger=ERROR, A1
    log4j.appender.A1=org.apache.log4j.ConsoleAppender
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
    dans {MAWEBAPP_HOME}/WEB-INF/classes/log4j.properties, j'ai �crit :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    log4j.rootLogger=DEBUG, A1, logfile
    log4j.appender.A1=org.apache.log4j.ConsoleAppender
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
    log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
    log4j.appender.logfile.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
    log4j.appender.logfile=org.apache.log4j.RollingFileAppender
    log4j.appender.logfile.File=c:/logs/mywebapp.log
    log4j.appender.logfile.MaxFileSize=512KB
    Dans ma webapp, j'utilise pour chaque classe que je veux logger :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    static Logger logger = Logger.getLogger(MaClasse.class)
    logger.debug("ceci est une trace")
    Et l�, c'est le drame, car sur la console mes pauvres traces sont submerg�es par un flot continu de traces g�n�r�es par Tomcat, qui prend le niveau de trace de ma webapp(debug), au lieu de conserver sagement le sien(error).

    Merci par avance pour toute aide 8)

  2. #2
    Membre habitu�
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 13
    Par d�faut D�but de r�ponse... ?
    Salut,

    Pour ma part, dans un coin de ma Servlet (� l'init), je sp�cifie le nom du fichier log4j � utiliser.... comme ceci :

    ...
    import org.apache.log4j.*;
    ....
    PropertyConfigurator.configure ("C:\eclipse\workspace\V2\log4j.properties");

    Si �a peux t'aider....
    Hugo.

  3. #3
    ego
    ego est d�connect�
    R�dacteur

    Homme Profil pro
    Architecte de syst�me d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 57
    Localisation : France, Hauts de Seine (�le de France)

    Informations professionnelles :
    Activit� : Architecte de syst�me d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Billets dans le blog
    2
    Par d�faut
    Le mieux est de sp�cifier un Logger pour ton arborescence de packages.
    Ainsi, tu peux laisser Tomcat en mode ERROR et mettre ton/tes logger(s) en mode INFO par exemple.
    Pour cela, il faut que dans tes classes tu r�cup�res un logger avec le code suivant :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    static Logger logger = Logger.getLogger([b]<nom classe>[/b].class.getName());
    Dans ton fichier de log, tu mets des lignes comme suit :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    log4j.logger.<nom classe>=INFO
    Sinon regardes la doc de log4j dont je met ci-apr�s un extrait :

    Initialization servlet

    It is also possible to use a special servlet for log4j initialization. Here is an example,

    package com.foo;

    import org.apache.log4j.PropertyConfigurator;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.PrintWriter;
    import java.io.IOException;

    public class Log4jInit extends HttpServlet {

    public
    void init() {
    String prefix = getServletContext().getRealPath("/");
    String file = getInitParameter("log4j-init-file");
    // if the log4j-init-file is not set, then no point in trying
    if(file != null) {
    PropertyConfigurator.configure(prefix+file);
    }
    }

    public
    void doGet(HttpServletRequest req, HttpServletResponse res) {
    }
    }




    Define the following servlet in the web.xml file for your web-application.

    <servlet>
    <servlet-name>log4j-init</servlet-name>
    <servlet-class>com.foo.Log4jInit</servlet-class>

    <init-param>
    <param-name>log4j-init-file</param-name>
    <param-value>WEB-INF/classes/log4j.lcf</param-value>
    </init-param>

    <load-on-startup>1</load-on-startup>
    </servlet>




    Writing an initialization servlet is the most flexible way for initializing log4j. There are no constraints on the code you can place in the init() method of the servlet.

  4. #4
    Futur Membre du Club
    Inscrit en
    Ao�t 2004
    Messages
    4
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4
    Par d�faut
    Merci � tous les deux, je vais essayer
    Toutefois, je suis assez perplexe....
    Je ne vois pas pourquoi d�s lors d�finir un log4j.properties dans Tomcat + un autre dans chaque dossier /WEB-INF/classes des diff�rentes applis web
    Je vais mettre en application vos conseils, et posterai mes r�sultats.

    Encore merci et bon r�veillon

  5. #5
    Futur Membre du Club
    Inscrit en
    Ao�t 2004
    Messages
    4
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4
    Par d�faut
    J'ai donc test� ta m�thode, ego, et effectivement �a fonctionne parfaitement. Merci beaucoup pour cette solution qui va enfin me permettre de retrouver la s�r�nit� avec log4j.
    Toutefois, n'existe-t-il pas un moyen de sp�cifier dans le log4j.properties
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    log4j.logger.<nom classe>=INFO
    un nom de package plutot qu'un nom de classe, ce qui serait moins fastidieux � l'usage ?

  6. #6
    ego
    ego est d�connect�
    R�dacteur

    Homme Profil pro
    Architecte de syst�me d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 57
    Localisation : France, Hauts de Seine (�le de France)

    Informations professionnelles :
    Activit� : Architecte de syst�me d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Billets dans le blog
    2
    Par d�faut
    en fait, tu peux mettre un nom de package dans le .properties

  7. #7
    Futur Membre du Club
    Inscrit en
    Ao�t 2004
    Messages
    4
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4
    Par d�faut [r�solu]
    Merci 1000 fois, ego !
    Gr�ce � tes conseils, je suis durablement r�concili� avec log4 !
    Ca fonctionne effectivement tr�s bien avec le nom de package.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Pb de journalisation avec Log4j...
    Par cofy dans le forum Logging
    R�ponses: 5
    Dernier message: 10/03/2008, 12h21
  2. Weblogic 8.1 avec log4j
    Par lili2704 dans le forum Weblogic
    R�ponses: 2
    Dernier message: 12/03/2007, 18h31
  3. webapp avec log4j
    Par benkunz dans le forum Servlets/JSP
    R�ponses: 10
    Dernier message: 01/09/2006, 15h42
  4. R�ponses: 2
    Dernier message: 03/05/2006, 13h46
  5. [Servlet] Effectuer des traces avec log4j
    Par Shiryu44 dans le forum Servlets/JSP
    R�ponses: 5
    Dernier message: 04/04/2005, 16h43

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