Bonjour à tous,
Dans le cadre du développement de nouveaux projets, nous avons décidé d'externaliser les configurations applicatives, dont le fichier log4j.xml.
Les librairies sont également externalisée au niveau du serveur. Chaque war d'une application embarque alors un nombre restreint de librairie.
Les applications sont déployées sur un serveur tomcat7
Le contexte étant posé, voici mon problème:
Une fois les applications déployés, il semble que log4j pose problème. En effet, aucun log n'est écrit dans le bon fichier, et en console Log4j renvoie l'erreur log4j:ERROR Attempted to append to closed appender named [FILE].
Indépendamment, chaque application fonctionne parfaitement et le problème apparaît à partir de 2 applis sur le serveur.
Les fichiers log4j de chaque application étant sensiblement identiques, j'ai commencé par renommer les appenders afin qu'aucun ne porte le même nom, mais le problème a persisté.
Au niveau de la configuration spring (les valeurs ${common_rep}/${appliName.rep} sont correctement remplacées):
La seule façon de faire en sorte que tout fonctionne parfaitement est de ré-internaliser les librairies.
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 <!-- log4j config --> <bean id="log4jConfigurerReturnTicket" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> <property name="targetClass"> <value>org.springframework.util.Log4jConfigurer</value> </property> <property name="targetMethod"> <value>initLogging</value> </property> <property name="arguments"> <list> <value>file:///${common_rep}/${appliName.rep}/log4j.xml</value> </list> </property> </bean>
N'y a-t-il pas une solution?
A l'avance merci pour votre aide.
Partager