On Thu, 21 Jul 2005 11:42:15 -0700 (PDT), Matt Benson wrote: >Looks like your XmlLogger object needs -some- >configuration between instantiation and addition as a >listener.
Well, in some twisted way, yes. The XmlLogger does two things: recording seen tasks in "tasks", and recording timing info. When created inside the build script, some info is missing ('cause of missed events), leading to the RuntimeError and a NullPointerExeption. Which is why this thing works: <?xml version="1.0" encoding="ISO-8859-1"?> <project name="logger.test" default="test" basedir="."> <description> Test Adding Logger via Scripting </description> <property name="XmlLogger.file" location="ant.log.xml"/> <script language="jython"><![CDATA[if 1: from org.apache.tools.ant import BuildEvent, XmlLogger class TardyXmlLogger(XmlLogger): """ Deals with errors due to missed events when we're created inside the build script. """ def __init__(self): # ignore one event, namely our own finishing self.ignore = True # add timing info for build start event self.buildStarted(BuildEvent(project)) def taskFinished(self, event): if not self.ignore: XmlLogger.taskFinished(self, event) self.ignore = False listener = TardyXmlLogger() project.addBuildListener(listener) ]]> </script> <target name="empty"> </target> <target name="test"> <echo message="Hello world!"/> <antcall target="empty"/> </target> </project> Ciao, Jürgen --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]