Bonjour à tous,
Alors voilà le mystère en question. Je développe un serveur basé sur Spring/Hibernate et je log avec log4j dans un fichier.
Je me suis aperçu que lorsque je crée un exécutable de mon application, le fichier de log ne se crée pas alors qu'il n'y pas de problème quand je lance depuis eclipse. J'ai paramétré mon exécutable en mode console et je vois les affichage log dans la console apparaître.
Après moulte test, j'ai décidé de simplement supprimer le fichier log4j.properties pour voir ce qui se passe. Quand je lance depuis eclipse, résultat normal :
Mais quand je crée un exécutable, il continue à logger dans la console au lieu de planter comme il devrait le faire sans .properties pour l'initialiser.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 log4j:WARN No appenders could be found for logger (execution.lanceur). log4j:WARN Please initialize the log4j system properly.
Devant ce résultat incompréhensible, j'ai décidé de tester sur une autre petite application qui utilise la même base DAO Spring/Hibernate mais avec un code métier différent. Celle-ci se comporte tout à fait normalement, la version exécutable loggant dans le fichier spécifié quand le log4j.properties existe et jamais dans la console si je ne spécifie rien. Cette petite appli utilise exactement les mêmes fichiers de config (ApplicationContext.xml avec juste les services du code métiers qui diffèrent, hibernate.cfg.xml, log4j.properties avec juste un nom de fichier cible diffère ..)
Dans le doute, j'ai essayé de créer un nouveau projet pour mon serveur en recopiant mes sources et mes fichiers config dedans, même résultat.
Donc voilà, je voudrais savoir ce qui pourrait amener mon exécutable à configurer log4j en mode console et à ne pas tenir compte du log4j.properties alors que pourtant l'application fonctionne bien quand elle est lancée sous eclipse.
mon log4j.properties (mis dans le dossier bin):
Merci d'avance pour votre aide.
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 #définition du niveau et des Appender du rootLogger log4j.rootLogger=WARN, monAppender #définition du Layout pour monAppender log4j.appender.monAppender.layout=org.apache.log4j.PatternLayout #définition du pattern d affichage pour monAppender log4j.appender.monAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%c{1}] %m%n #cible log4j.appender.monAppender=org.apache.log4j.RollingFileAppender log4j.appender.monAppender.File=C:/log/serveur.log log4j.appender.monAppender.Encoding=UTF-8 log4j.appender.monAppender.MaxFileSize=3000KB
Partager