On Tue, Jan 20, 2009 at 9:25 AM, Curt Arnold <[email protected]> wrote:
> > On Jan 19, 2009, at 7:05 PM, Arindam wrote: > > On Mon, Jan 19, 2009 at 11:52 PM, Curt Arnold <[email protected]> wrote: >> >>> >>> You can use external entities which the XML parser will resolve before >>> log4j see anything. For example: >>> >>> <!DOCTYPE log4j:configuration [ >>> <!ENTITY common SYSTEM "common.xml"> >>> ]> >>> <log4j:configuration> >>> <!-- common stuff --> >>> &common; >>> >>> <!-- custom stuff --> >>> </log4j:configuration> >>> >>> I believe earlier versions of log4j had problems with external entities >>> (either they didn't work at all or you had to use absolute URL since the >>> base URL was lost). >>> >>> >> Thanks Curt, it works like a charm, the only caveat being I have to put >> the >> external entity up as a HTTP URL publicly accessible. >> Otherwise java.net.MalformedURLException: unknown protocol: dummy is >> thrown >> for a local file. >> Basically the internal xerces handler has code only to deal with http >> protocols, and not anything else. >> I tried using file://common.xml , but strangely that tries to do a ftp >> access ... >> >> This will satisfy my needs, but I would really like it to work without >> running a webserver instance. Any ideas on it ? >> >> >> Thanks, >> Arindam. >> > > > What version of log4j are you using? I could see that happening with > earlier versions of log4j, but I don't think it would happen with log4j > 1.2.15. The "dummy" protocol is definitely something originating in log4j, > not Xerces. Xerces definitely can handle URL's relative to file: URL's. > > Oh yes, works perfectly with log4j 1.2.15. Was using 1.2.11 earlier. Thanks a lot.
