Merci pour la réponse c'est cela que j'utilise.
En fait le problème vient d'autre chose.
J'ai plusieurs serveurs dans lesquels mon appli doit fonctionner :
- machine w2000 tomcat 4.0.x jdk1.4
- machine unix tomcat 4.0.x jdk1.3.1
- machine unix easserver 3.6.1 jdk1.2
Et il s'avère que je dois recompiler l'ensemble des mes class à chaque fois
en précisant la version de la jvm (attribut target dans tache ant javac) et
tout fonctionne
Le problème vient de(s) la(es) ligne(s) :
private static org.apache.log4j.Logger
logger=org.apache.log4j.Logger.getLogger(nom complet de la class)
Et si je ne recompile la class pour l'utiliser avec une cible différente de
celle avec la compil précédente a été effectuée j'ai une erreur bizarre !
Ou alors quelqu'un a une explication (je sens que tout cela va générer un
TROLL :-)))
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Wednesday, October 09, 2002 1:29 PM
Subject: Réf. : initialisation de log4j par une servlet -> erreur




J'ai testé Log4j sous Tomcat, Weblogic, initialisé par son fichier
properties ou par le web.xml (quand l'appli est sous format .war ou .ear
par exemple), donc je pourrai te renseigner sur ce mode de fonctionnement
si c'est ça ta question...

> En fait, je cherche à faire une initialisation dynamique de log4j. En
gros,
> en production le level sera à INFO ou WARN mais en cas d'erreur je dois
> pouvoir modifier mon fichier de propriétés pour mettre le level sur DEBUG
et
> avoir ainsi plus d'infos tout cela en réinitialisant ma servlet et du même
> coup log4j.

c'est justement comme ça que fonctionne Log4j, ca tombe bien ;o)

tu trouveras ci-joint un exemple de fichier properties, et le paramètre du
web.xml qui indique où il est placé est de ce type :
  <servlet>
    <servlet-name>log4j-init</servlet-name>
    <servlet-class>BE.com.Log4jInit</servlet-class>
    <init-param>
      <param-name>log4j-init-file</param-name>
      <param-value>WEB-INF/lib/log4j.properties</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

(See attached file: log4j.properties)

Essaie de supprimer la ligne <load on startup>, et de lancer manuellement
la servlet log4j. Le message d'erreur sera peut-être plus clair...
Essaie aussi de récupérer une version différente de log4j.jar.

A+)
Vincent

PS : J'ai apparemment un "bug" quand j'envoie des mails sur la
mailing-list, apparemment le sujet du mail est perdu (j'ai mis pour ce mail
: "Réf. : initialisation de log4j par une servlet -> erreur", très
original...), et je ne reçois pas les mails que j'envoie (mais la mailing
list, oui). Si quelqu'un connait la cause de ce problème, je suis preneur
(et si y'a la solution avec, c'est encore + cool ;o) format html au lieu de
texte ? utilisation de Lotus Notes pour envoyer les mails ? proxy qui
filtre ? pare-feu ?

Répondre à