Bonjour tt le monde,

Voila, je vous explique mon problème:

J'utilise L'API WSS4J pour la sécurisation des Web services. Elle utilse l'API Commons_logging (JCL) pour son propre logging. Dans mon application, j'utilise Log4J qui marche très bien pour mes logs à moi. Pour les logs de WSS4J, ils sont programmés pour être envoyé vers la console, sauf que moi je veux changer l'Appender qui les prend en compte en les envoyant vers un fichier pour garder les traces de sécurité. D'abord j'ai essayé de tout simplement le déclarer dans log4j.properties comme d'habitude pour les autres api, mais ça n'a pas marché. J'ai créé après un fichier "commons-logging.properties" pour spécifier que je vais utiliser log4j comme API de logging, mais ça marche pas non plus. Après j'ai téléchargé le code source de l'API WSS4J pour voir si elle contient un fichier de conf pour JCL, mais je ne trouve aucune configuration.

ci après le mon fichier Log4J properties et mon fichier commons-logging.properties.

Log4j.properties:
log4j.rootLogger=TRACE, log_0, log_1, log_2, log_3, log_4, log_5

og4j.logger.org.apache.axis=error, log_4
log4j.logger.org.apache.ws=error, log_4
log4j.logger.org.apache.ws.axis.security.WSDoAllReceiver=error, log_4
og4j.logger.org.apache =error, log_4


log4j.appender.log_4=org.apache.log4j.RollingFileAppender
log4j.appender.log_4.MaxFileSize=100MB
log4j.appender.log_4.MaxBackupIndex=10
log4j.appender.log_4.File=c:/temp/log4j_error.log
log4j.appender.log_4.Threshold=ERROR
log4j.appender.log_4.layout=org.apache.log4j.PatternLayout
log4j.appender.log_4.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
Mon fichier commons-logging.properties:
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
log4j.configuration=log4j.properties

NB: mes 2 fichiers sont dans le dossier src


Pour tester je prends juste le logger de la classe "WSDoAllReceiver" de l'api WSS4J, et j'écris dans ma classe de test:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
protected static Log log = LogFactory.getLog(WSDoAllReceiver.class.getName());
 
    public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {
 
             if (log.isErrorEnabled()){
                log.error("MyLog");
             }
            arg2.doFilter(arg0,arg1);
 
 
    }
Résultat: il envoie toujours les logs vers la console.
NB: Je trouve bien qu'il est activé pour ERROR!!


Merci d'avance