I have a peculiar problem with Log4j. We are deploying on Weblogic 10 using log4j.xml
. That works fine. We figured a way to run Tomcat 6 in such a way that we can develop on this platform and deploy on Weblogic 10.
I have figured out how to make log4j.properies
work with Tomcat 6 with additional JArs that use the JULI logging mechanism in Tomcat 6. Unfortunately, my log4j.xml
(that works with Weblogic) fails to work with Tomcat 6. So I am forced to use log4j.properties
.
I have not been able to figure out how to indicate application class hierarchies in log4j.properties
.
So my question is how does on convert the following log4j.xml
entries to log4j.properties
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="vccashib" class="org.apache.log4j.DailyRollingFileAppender">
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<param name="File" value="vccashib_10.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ISO8601} %t %-5p %c - %m%n"/>
</layout>
</appender>
<logger name="org.hibernate">
<level value="DEBUG"/>
<appender-ref ref="vccashib" />
</logger>
</log4j:configuration>
So let us say I was to write a logger that captures logs for classes in my com.abc.xyz
hierarchy. How do I indicate that in log4j.properties
? (I have taken care of a other values, such as type of appenders, DatePattern, ConversionPattern, FileName, layout etc.)
Please note, I have sent you the only problem-specific code.
Alternatively, if you know the answer on how to make log4j.xml
that is part of my war archive with Tomcat 6 (JULI jars are in place and work well with log4j.properties
), please let me know
Please help.
Suhaas
I'm not entirely clear on your question. I've deployed log4j
on tomcat 6 with no problems (can you post the specific problems you're having with your xml config?). I'm not sure what you mean by "I have figured out how to make log4j.properies
work with Tomcat 6 with additional jars that use the JULI logging mechanism in Tomcat 6").
$TOMCAT_HOME/lib
) directory? If so
the library might be looking for the
config from the global directory,
rather than from your webapp.If you're just talking about how to manage separate class hierarchies in your log4j
config, it's something like :
log4j.rootCategory=INFO,stdout
#e.g. not interested in most stripes or spring warnings
log4j.logger.net.sourceforge.stripes=ERROR
log4j.logger.org.springframework=ERROR
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-d %-5p [%t] %c{1} %3x -
%m%n
#This creates the separate log "Foo" at DEBUG level. Everythign within
#the "com.foo" package will
# get logged here
log4j.category.com.foo=DEBUG,Foo
log4j.appender.Foo=org.apache.log4j.RollingFileAppender
log4j.appender.Foo.layout=org.apache.log4j.PatternLayout
log4j.appender.Foo.layout.ConversionPattern=%-d %-5p [%t] %c{1} %3x - %m%n
log4j.appender.DetailLogFile.File=foo.log
#this is the important line - if this isn't here the stuff in
#com.foo package will show up in both logs.
log4j.additivity.com.foo=false