tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gregor Schneider <rc4...@googlemail.com>
Subject Slightly OT: log4j - generic log4j.dtd
Date Thu, 30 Apr 2009 15:43:15 GMT
Hi guys,

I know it's not a real Tomcat-topic, however, it's close to and I'm
wondering if anyone on this list might come up with some kind of a
smart solution.

Most of you may know the typical first lines of any log4j.xml-config-file:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

So far, so bad.

Why bad?

Because every bloody servlet needs it's very own log4j.dtd together
with it's log4j.xml, which is why I'm looking for a smarter solution.

It's a good thing that every servlet has it's onown log4j.xml so that
each servlet can be configured - here I would like the idea of a
cantral log4j-configuration-file.

However, with log4j.dtd things are slightly different since it's
always a file with the same content and I really dislike redundancies.

So my idea was to use ${CATALINA_HOME}, pass this via "-Dlog4j.dtd as
a Java-property to Tomcat and evaluate this property within log4j.xml,
however, that does not seem to work:

======== [ from catalina.sh ] =================
CATALINA_OPTS="  -Xmx256m -server \
         -Djava.awt.headless=true \
         -Dlog4j.dtd=${CATALINA_HOME}/common/classes/log4j.dtd \
         -Dlog4j.configuration=log4j.xml"
========================================


======== [ from some log4j.xml ] ===============
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "${log4j.dtd}">
========================================

The result:

log4j:ERROR Could not parse url
[file:/home/tomcat/www/common/classes/log4j.xml].
java.net.MalformedURLException: no protocol: ${log4j.dtd}
    at java.net.URL.<init>(URL.java:567)
    at java.net.URL.<init>(URL.java:464)
    [ ...some more stuff deleted ]

I do no that I can pass a URL, so basically some thing like

<!DOCTYPE log4j:configuration SYSTEM "http://localhost/mylog4jconf/log4j.dtd">

should work, but I don't like the idea that I have some directory just
containg some configuration-files which is accessible via http.

I know, I could use a RemoteAdressFilter which just allows connection
from localhost for this webapp, but all this looks a bit too
complicated /awkward to me.

besides, on this box is not only one but a whole bunch of virtual
hosts with obviously different domains running.

Ah well, before André's complaining: ;)

My config is as follows:

Using CATALINA_BASE:   /home/tomcat/www
Using CATALINA_HOME:   /home/tomcat/www
Using CATALINA_TMPDIR: /home/tomcat/www/temp
Using JRE_HOME:       /opt/jdk1.5
Server version: Apache Tomcat/5.5.17
Server built:   Apr 14 2006 02:08:29
Server number:  5.5.17.0
OS Name:        Linux
OS Version:     2.6.18-5-686
Architecture:   i386
JVM Version:    1.5.0_07-b03
JVM Vendor:     Sun Microsystems Inc.

However, same goes for Tomcat 6 with Java 6 and [put your preferred
environment here ]

So guys, anyone smart around here?

Cheers

Gregor
-- 
just because your paranoid, doesn't mean they're not after you...
gpgp-fp: 79A84FA526807026795E4209D3B3FE028B3170B2
gpgp-key available
@ http://pgpkeys.pca.dfn.de:11371
@ http://pgp.mit.edu:11371/
skype:rc46fi

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message