You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by David Matheson <da...@gmail.com> on 2007/07/20 15:50:20 UTC

Log4J in multiple web applications

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@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org