On 6/14/06, Guy Davis <[EMAIL PROTECTED]> wrote:

I was hoping that someone would have an idea as to how I can configure
the log4j system so that DDLUtils log messages are output to the console
when running Ant tasks.

For example, here's the main portion of an Ant task labelled db.clean:

<ddl_to_db schemaFile="${ddlutils.dir}/empty_schema.xml"
databaseType="${db.type}" validateXml="false">
   <database url="${db.url}" driverClassName="${db.driver}"
username="${db.user}" password="${db.password}" />
   <writeSchemaToDatabase alterDatabase="true" />
</ddl_to_db>

Here's the command line output:
$ ant -Ddb.props=database/ddlutils/oracle.properties db.clean

[ddl_to_db] log4j:WARN No appenders could be found for logger
org.apache.commons.digester.Digester).
[ddl_to_db] log4j:WARN Please initialize the log4j system properly.

This is important as it would give us clues as to why the Ant tasks fail
for situtations like all the Oracle tablespace is used up etc...

Well, Ant is difficult when it comes to logging because a task is
usually loaded from a classloader that is different to Ant's own
classloader. Thus, it is required to put the logging configuration
file (e.g. log4j.properties) into the classpath that is used to
load/run the task.
When defining the task you should have a classpathref attribute or a
classpath subelement that specifies the ddlutils jar among others. In
this classpath you need to include the logging properties file, e.g.
by adding an additional path entry to this classpath.

Tom

Reply via email to