Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » Apache Tomcat »

Log4J in multiple web applications

David Matheson

2007-07-20


Hey, all. I've seen this question posted in various forums before,
but the solutions proposed don't work for me, so here goes:

I am using Tomcat 6.0.13, and I have two web applications, FooBar1 and
FooBar2, and I want to use log4j to spit out log statements to two
different files, foobar1.log and foobar2.log. I am told that to do
this I put each of their log4j.xml files in WEB-INF/classes and each
of their log4j.jar files in WEB-INF/lib, and this is what I've done:

FooBar1
--WEB-INF
--classes/log4j.xml
--lib/log4j-1.2.x.jar
FooBar2
--WEB-INF
--classes/log4j.xml
--lib/log4j-1.2.x.jar

I have these two files in Tomcat's webapps directory. Here are the
log4j.xml files:

FooBar1:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
 <appender name="foobar1" class="org.apache.log4j.RollingFileAppender">
   <param name="File" value="${catalina.home}/logs/foobar1.log" />
   <param name="MaxFileSize" value="100MB" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern" value="%d{ISO8601} %-5p %c: %m%n" />
   </layout>
 </appender>
 
 <logger name="com.foo" additivity="false">
   <level value="debug" />
   <appender-ref ref="foobar1" />
 </logger>
 
 <logger name="com.bar" additivity="false">
   <level value="debug" />
   <appender-ref ref="foobar1" />
 </logger>

 <root>
   <priority value="fatal" />
   <appender-ref ref="foobar1" />
 </root>
</log4j:configuration>

FooBar2:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
 <appender name="foobar2" class="org.apache.log4j.RollingFileAppender">
   <param name="File" value="${catalina.home}/logs/foobar2.log" />
   <param name="MaxFileSize" value="100MB" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern" value="%d{ISO8601} %-5p %c: %m%n" />
   </layout>
 </appender>
 
 <logger name="com.foo" additivity="false">
   <level value="debug" />
   <appender-ref ref="foobar2" />
 </logger>
 
 <logger name="com.baz" additivity="false">
   <level value="debug" />
   <appender-ref ref="foobar2" />
 </logger>

 <root>
   <priority value="fatal" />
   <appender-ref ref="foobar2" />
 </root>
</log4j:configuration>

All log statements go to foobar1.log. I have
commons-logging-1.0.4.jar in ${catalina.home}/lib, but not any
log4j.jar. I don't understand what I should be doing. Please help!

---------------------------------------------------------------------
To start a new topic, e-mail: users@(protected)
To unsubscribe, e-mail: users-unsubscribe@(protected)
For additional commands, e-mail: users-help@(protected)

©2008 junlu.com - Jax Systems, LLC, U.S.A.