Y a-t-il un moyen facile d'avoir l'enregistreur de fourmis (par défaut ou autre) ajoutez un horodatage à chaque message? p>
La seule façon dont je peux penser est d'utiliser le Log4Jlistener et que ses paramètres incluent l'horodatage. Ou écrire un Enregistreur personnalisé qui sous-classes par défautLogger et écrit l'horodatage. S'il y a un moyen meilleur ou plus facile (de préférence sans nécessiter que Les utilisateurs installent un nouveau fichier JAR dans leur Ant Anne Lib), P>
Je serais intéressé à entendre à ce sujet. p>
5 Réponses :
Vous pouvez définir une fourde macrodef pour définir l'horodatage actuel, puis appeler la macrodef à chaque fois que vous devez y référoir tout au long de votre Build.xml
Le MacRodef suivant définira l'horodatage sur une propriété (vous pouvez ajouter un attribut. Au MacRodef si vous souhaitez personnaliser la propriété, il se définit): p> puis pour l'utiliser, il suffit d'accéder à la propriété définie par la macrodef dont vous avez besoin: p> <target name="doFoo" depends="dir.check" if="dir.exists">
<set.timestamp/>
<!--in this example, just echo the timestamp -->
<echo message="${current.time}"/>
</target>
Cela stockera l'horodatage dans une propriété, de sorte que tous les messages partageront le même temps. Bon dans certains cas, mais inutile par ex. Voyant quelle partie d'une construction prend trop de temps. Comme l'OP mentionne "un horodatage à chaque message", je ne pense pas que ceci est une réponse correcte à la question de l'intendant.
Je ne suis pas si sûr de ce rasmus. Si vous appelez à plusieurs reprises la macro de l'horodatage défini et immédiatement après cela, il devrait le jeter de manière appropriée.
Les propriétés données sont immuables dans la fourmi, vous devez faire quelque chose d'un peu funky ici sinon vous venez de vous retrouver à nouveau à vous connecter le même horodatage et à nouveau.
Utilisation d'AntCall vous donne une nouvelle session qui signifie que vous pouvez réutiliser la propriété, bien que vous pouvez réutiliser C'est un peu maladroit. p> Si vous utilisez une fourche 1.8, vous pouvez utiliser local qui est beaucoup plus propre p> Et voici comment vous pouvez l'utiliser p>
Essayez ceci p>
ant -logger org.apache.tools.ant.listener.profilelogger P>
Il imprime l'heure d'entrée et l'heure de sortie pour chaque cible ainsi que le temps pris pour chaque cible dans la SP. P>
Regardez ces enregistreurs: http://ant.apache.org/manual/listeners.html (aussi un - org.apache.tools.ant.listener.profilelogger - est mentionné dans la réponse avant la mienne). Mais cela semblent nécessiter une nouvelle version suffisante de la fourmi. P>
J'aime la solution macrodef si elle est en effet plus efficace que la cible, mais j'utilise un "var improvité = vrai" pour forcer une réinitialisation de la variable, comme: Utilisation p>