ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Naresh Bhatia" <NBha...@sapient.com>
Subject RE: How to get paths with forward slashes
Date Mon, 27 Jan 2003 16:52:53 GMT
Well, I am using Ant's Copy task with a filterset to generate my
log4j.xml. The file is correctly generated with the following line to
specify the log file:

    <param name="File" value="C:\MyProject\log\test.log"/>

However, when log4j reads this file it interprets the back slashes as
escape characters. I don't think in XML we have to escape the
backslashs, but in either case I don't know how to do this with Ant. The
error generated by log4j is shown below. Note that it thinks that the
filename is "C:MyProjectlog est.log"!

log4j:ERROR setFile(null,false) call failed.
java.io.FileNotFoundException: C:MyProjectlog est.log (The filename,
directory name, or volume label syntax is incorrect)
        at java.io.FileOutputStream.open(Native Method)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
        at org.apache.log4j.FileAppender.setFile(FileAppender.java:272)
        at
org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:15
6)
        at
org.apache.log4j.FileAppender.activateOptions(FileAppender.java:151)
        at
org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:247)
        at
org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:
210)
        at
org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.
java:140)
        at
org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigur
ator.java:153)
        at
org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMCon
figurator.java:415)
        at
org.apache.log4j.xml.DOMConfigurator.parseCategory(DOMConfigurator.java:
335)
        at
org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:788)
        at
org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:67
3)
        at
org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:61
6)
        at
org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:60
2)
        at
org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConver
ter.java:460)
        at org.apache.log4j.LogManager.<clinit>(LogManager.java:113)
        at org.apache.log4j.Category.getInstance(Category.java:514)
        at
org.apache.commons.logging.impl.Log4jFactory.getInstance(Log4jFactory.ja
va:153)
        at
org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImp
l.java:285)
        at
org.apache.commons.logging.LogFactory.getLog(LogFactory.java:409)
        at
org.framework.config.test.ConfigTest.<clinit>(ConfigTest.java:19)

BTW, based on Dominique Devienne's suggestion in this thread, I have
used <pathconvert> to workaround this problem, but it is still a little
messy. <pathconvert> needs to be inside a target - it is not as easy as
setting a property anywhere in the build file.

Thanks.
Naresh

-----Original Message-----
From: Jacob Kjome [mailto:hoju@visi.com] 
Sent: Monday, January 27, 2003 10:52 AM
To: Ant Users List
Subject: RE: How to get paths with forward slashes



If you read the docs on java.io.File, it can take the following formats:

C:\mydirectory\mysubdirectory\file.txt
C:\\mydirectory\\mysubdirectory\\file.txt
C:/mydirectory/mysubdirectory/file.txt

and the URL class taks the following formats:

file:///C:/mydirectory/mysubdirectory/file.txt
file:///C:\mydirectory\mysubdirectory\file.txt

you can even mix things up like this...

file:///C:\mydirectory\mysubdirectory/file.txt


The way I set up my file paths is:

<param name="File" value="${mycontext.log.home}/mylogfile.log"/>

I set a system property at runtime for said variable.  The path that I
set 
up looks like this on Windows:

C:\mydirectory\mysubdirectory


So, I'm not sure why Log4j would be choking on a path like this since it

works fine for me.   Anyone else have an ideas?

Jake


At 06:48 AM 1/27/2003 -0500, you wrote:
>Well, here are the specific examples I am having trouble with:
>
>1) log4j's configuration file requires pathnames with either forward 
>slashes or double back-slashes. If I use Ant to create this file with a

>path property, I get something like
>
>         <param name="File" value="C:\MyProject\log\test.log"/>
>
>Log4j gets completely confused by this.
>
>2) The Axis Java2Wsdl task expects a URL in the form
>
>       url="file:///C:/MyProject//MyProject.wsdl"
>
>I do not know how to give this URL to the Ant task even if I have a 
>property that contains a regular path.
>
>Thanks.
>Naresh
>
>-----Original Message-----
>From: Jacob Kjome [mailto:hoju@visi.com]
>Sent: Monday, January 27, 2003 12:00 AM
>To: Ant Users List
>Subject: Re: How to get paths with forward slashes
>
>
>
>Java programs will understand file: protocol URL's even if the slashes 
>are a mix of forward and backslashes....at least that is my experience.

>So, I
>wouldn't worry much about this.
>
>Jake
>
>At 11:08 PM 1/26/2003 -0500, you wrote:
> >1) Is there a way to get paths in Ant with forward slashes even on 
> >Windows platform? For example:
> >
> >   <property name="app_home" location="."/>
> >
> >should somehow give c:/... instead of c:\...
> >
> >2) How can I get a file location as a URL (e.g. file:///C:/...)
> >
> >Naresh
> >
> >Naresh Bhatia
> >Sapient
> >One Memorial Drive, Cambridge, MA 02142
> >Tel: 617-761-1771  Fax: 617-621-1300
> >Email: nbhatia@sapient.com
>
>--
>To unsubscribe, e-mail:
<mailto:ant-user-unsubscribe@jakarta.apache.org>
>For additional commands, e-mail: 
><mailto:ant-user-help@jakarta.apache.org>

--
To unsubscribe, e-mail:   <mailto:ant-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-user-help@jakarta.apache.org>


Mime
View raw message