2010-12-29 3 views
3

J'utilise org.apache.tools.ant.listener.Log4jListener pour gérer la journalisation avec mon script ant. Le script ant est hautement configurable et conçu pour être exécuté de différentes manières avec différents paramètres et par conséquent je dois pouvoir me connecter aux fichiers spécifiés lors de l'exécution. J'ai un log4j.properties qui spécifie un fichier journal à construire.log, et malgré mes tentatives de lancer les propriétés red redéfinition définies dans log4j.properties ont échoué.Configuration de log4j à l'exécution

La génération les ignore et continue d'écrire dans build.log. Je n'ai pas trouvé beaucoup de soutien en ce qui concerne l'écriture de fichiers personnalisés à moins que ce soit en Java avec leur classe Logger. Peut-être que je pense à tort. log4j.properties n'est pas traité de la même manière qu'un fichier de propriétés dans un script ant (donc remplaçable depuis la ligne de commande)? Est-ce que je peux le faire intelligemment sans écrire une tâche personnalisée ou quelque chose?

Répondre

1

Vous configurez votre fichier log4j.properties à l'aide d'une propriété système que vous pouvez définir dynamiquement sur la ligne de commande. La propriété ci-dessous est "$ {logfile.name}". Un exemple de configuration de log4j serait comme ceci:

# logfile is set to be a RollingFileAppender 
log4j.appender.logfile=org.apache.log4j.RollingFileAppender 
log4j.appender.logfile.File=${logfile.name} 
log4j.appender.logfile.MaxFileSize=10MB 
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout 
log4j.appender.logfile.layout.ConversionPattern=[%-5p]%d{[email protected]\:mm\:ss,SSS}\:%c - %m%n 

L'option de ligne de commande pour passer une propriété, lorsque vous appelez « fourmi », est « -Dlogfile.name = {chemin runtime/nom du fichier journal} ». Remplacez {chemin d'accès/nom de fichier du fichier journal} par votre nom de fichier. Lorsque Ant est exécuté, cette valeur est définie en tant que propriété système. Cette propriété système est ensuite substituée dans log4j.properties lors de l'exécution.

http://ant.apache.org/manual/running.html

Questions connexes