4 votes

Tomcat log4j logging relative to application path ?

J'ai une application Google Web Toolkit (GWT) que j'utilise dans trois modes différents :

  1. Déployé sur Tomcat
  2. Mode hébergé
  3. Test Junit

Comment puis-je configurer log4j.properties pour que chacun de ces modes enregistre correctement ?

Si j'utilise ${catalina.base} Je ne peux pas l'utiliser en mode hébergé et dans les tests Junit. logs/myapplication.log mais cela ne fonctionne pas avec Tomcat car j'obtiens alors :

java.io.FileNotFoundException: log/myapplication.log (Keine Berechtigung)

Cela ne me dérangerait pas d'avoir les journaux dans webapps/myapplication/logs si le répertoire des journaux pouvait être spécifié par rapport au chemin de l'application, mais cela ne me dérangerait pas non plus si les fichiers journaux se trouvaient simplement dans /var/log/tomcat7/... ou dans un autre dossier de journaux.

Pour l'instant, mon fichier log4j.properties contient les entrées suivantes pour l'enregistrement des fichiers :

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=${catalina.base}/logs/myapplication.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%c %C %d{ABSOLUTE} %-5p %C{1}: %m%n
log4j.appender.file.threshold=DEBUG
log4j.appender.file.Append=false

3voto

jasop Points 467

1. Déploiement sur Tomcat

Je me connecte à ${catalina.home}, mais votre configuration semble toujours bonne. J'exécute ma configuration localement sous Windows et je ne vois aucune erreur au démarrage du serveur concernant le fait que ce dossier est introuvable. Si vous voulez pointer vers quelque part sur Windows, essayez d'ajouter ce qui suit à vos arguments dans votre configuration d'exécution :

-Dcatalina.base="C:\somefolder\" -Dcatalina.home="C:\somefolder\"

2. Mode hébergé

Dans ce mode, vous l'exécutez localement dans un IDE. Vous n'avez donc pas besoin de journaliser dans un fichier. Dans ce cas, ajoutez un stdout à votre log4j.properties

log4j.rootLogger=DEBUG, stdout, A

Vous verrez alors les messages de log dans la console de votre IDE.

3. Test JUnit

Utilisez un fichier de configuration distinct pour vos tests (c'est une pratique courante). Cela vous permet de mieux contrôler le niveau de journalisation, sans affecter les niveaux de journalisation de votre production.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X