Hi guys,

the following scenario:

I have configured Apache Tomcat logging with log4j. I've created 5
different appenders (each one for DEBUG, TRACE, INFO, ERROR and FATAL)
and assigned them to the root-logger
$catalina_home/common/classes/log4j.xml expecting the output of the
Tomcat basic classes going in there.

Now we have amongs others 2 servlets, some of the using the same
component which uses it's own logger - let's call it "CompassLogger".

Servlet 1 let's call it "IndexDOM", Servlet 2 let's call it "OccupationDOM".

For each Servlet I've created their very own appenders (again 5 for
DEBUG, TRACE, INFO, ERROR and FATAL) and their own logger, where I
linked to the appenders created above.

Example:

 <logger name="OccupationLogger" additivity="false">
   <appender-ref ref="OccupationDOMDailyFileAppenderInfo" />
   <appender-ref ref="OccupationDOMDailyFileAppenderWarning" />
   <appender-ref ref="OccupationDOMDailyFileAppenderError" />
   <appender-ref ref="OccupationDOMDailyFileAppenderFatal" />
 </logger>

No I also have to create the logger "CompassLogger" since the
component I'm using is instantiating this logger ("CompassLogger") in
both my servlets.

So I specified in each log4j.xml the appender for CompassLogger and
then linked within my CompassLogger to the appenders (did that for
IndexDOM and OccupationDOM).

Example:

 <logger name="CompassLogger" additivity="false">
   <level value="info" />
   <appender-ref ref="CompassDailyFileAppenderInfo" />
   <appender-ref ref="CompassDailyFileAppenderWarning" />
   <appender-ref ref="CompassDailyFileAppenderError" />
   <appender-ref ref="CompassDailyFileAppenderFatal" />
 </logger>

My idea was, that every servlet is writing it's own DEBUG, TRACE,
INFO, ERROR and FATAL-files, and the conponent that makes use of the
CompassLogger writes to it's own log-file.

Unfortunaetely, that doesn't work.

IndexDOM writes it's own log-files as expected, however, OccupationDOM
always writes into the log-file that I've specified for Tomcat output.

I've got no more Idea how I should get this to work and I'm about to
create just one f*ck*ng BIG logfile, and kiss goodbye.

- Yes, I've asked in Tomcat maling-list, no answer by now.
- Yes, I've read the docs, maybe didn't udnerstand them properly
- Yes, I even browsed the *complete* log4j-manual available for money,
didn't find what I'm looking for

Attached I have my log4x.xml-files. I know it's a lot of code, and I
apologize for that, however, maybe it helps to understand the idea
behind it all.

Also, if you guys have some other suggestions how I can achieve, that
each servlet write it's own log-files, although accessing the same
component (jar-file) which calls "CompassLogger" (I do not have access
to the sources of that component).

If this post is too confusing, please let me know, I will then try to
put things in a more clearer way.

OK, this is the log4j.xml from $catalina_home/common/classes:

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

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/";>

 <!-- Tomcat Daily Rolling File Appender TRACE, DEBUG, INFO -->
 <appender name="TomcatDailyFileAppenderInfo"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
       <param name="file" value="${catalina.home}/logs/tomcat.log.INFO" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
       <filter class="org.apache.log4j.varia.LevelRangeFilter">
               <param name="LevelMax" value="INFO"/>
               <param name="LevelMin" value="TRACE"/>
               <param name="AcceptOnMatch" value="true"/>
       </filter>
 </appender>

 <!-- Tomcat Daily Rolling File Appender WARNING -->
 <appender name="TomcatDailyFileAppenderWarning"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
       <param name="file" value="${catalina.home}/logs/tomcat.log.WARN" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
       <filter class="org.apache.log4j.varia.LevelRangeFilter">
               <param name="LevelMax" value="WARNING"/>
               <param name="LevelMin" value="WARNING"/>
               <param name="AcceptOnMatch" value="true"/>
       </filter>
 </appender>

 <!-- Tomcat Daily Rolling File Appender ERROR -->
 <appender name="TomcatDailyFileAppenderError"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
       <param name="file" value="${catalina.home}/logs/tomcat.log.ERROR" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
       <filter class="org.apache.log4j.varia.LevelRangeFilter">
               <param name="LevelMax" value="ERROR"/>
               <param name="LevelMin" value="ERROR"/>
               <param name="AcceptOnMatch" value="true"/>
       </filter>
 </appender>

 <!-- Tomcat Daily Rolling File Appender FATAL -->
 <appender name="TomcatDailyFileAppenderFatal"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
       <param name="file" value="${catalina.home}/logs/tomcat.log.FATAL" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
       <filter class="org.apache.log4j.varia.LevelRangeFilter">
               <param name="LevelMax" value="FATAL"/>
               <param name="LevelMin" value="FATAL"/>
               <param name="AcceptOnMatch" value="true"/>
       </filter>
 </appender>

 <root>
   <level value="info" />
   <appender-ref ref="TomcatDailyFileAppenderInfo" />
   <appender-ref ref="TomcatDailyFileAppenderWarning" />
   <appender-ref ref="TomcatDailyFileAppenderError" />
   <appender-ref ref="TomcatDailyFileAppenderFatal" />
 </root>

</log4j:configuration>

This is the configuration from Servlet IndexDOM:

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

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/";>
<!-- Daily Rolling File Appender TRACE, DEBUG, INFO -->
 <appender name="IndexDOMDailyFileAppenderInfo"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
   <param name="file" value="${catalina.home}/logs/IndexDOM.log.INFO" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
       <param name="LevelMax" value="INFO"/>
       <param name="LevelMin" value="TRACE"/>
       <param name="AcceptOnMatch" value="true"/>
   </filter>
 </appender>

 <!-- Daily Rolling File Appender WARNING -->
 <appender name="IndexDOMDailyFileAppenderWarning"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
   <param name="file" value="${catalina.home}/logs/IndexDOM.log.WARN" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
       <param name="LevelMax" value="WARNING"/>
       <param name="LevelMin" value="WARNING"/>
       <param name="AcceptOnMatch" value="true"/>
   </filter>
 </appender>

 <!-- Daily Rolling File Appender ERROR -->
 <appender name="IndexDOMDailyFileAppenderError"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
   <param name="file" value="${catalina.home}/logs/IndexDOM.log.ERROR" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
       <param name="LevelMax" value="ERROR"/>
       <param name="LevelMin" value="ERROR"/>
       <param name="AcceptOnMatch" value="true"/>
   </filter>
 </appender>

 <!-- Daily Rolling File Appender FATAL -->
 <appender name="IndexDOMDailyFileAppenderFatal"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
   <param name="file" value="${catalina.home}/logs/IndexDOM.log.FATAL" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
       <param name="LevelMax" value="FATAL"/>
       <param name="LevelMin" value="FATAL"/>
       <param name="AcceptOnMatch" value="true"/>
   </filter>
 </appender>

 <!-- COMPASS Daily Rolling File Appender TRACE, DEBUG, INFO -->
 <appender name="CompassDailyFileAppenderInfo"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
   <param name="file" value="${catalina.home}/logs/compass.log.INFO" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
       <param name="LevelMax" value="INFO"/>
       <param name="LevelMin" value="INFO"/>
       <param name="AcceptOnMatch" value="true"/>
   </filter>
 </appender>

 <!-- COMPASS Daily Rolling File Appender WARNING -->
 <appender name="CompassDailyFileAppenderWarning"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
   <param name="file" value="${catalina.home}/logs/compass.log.WARN" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
       <param name="LevelMax" value="WARNING"/>
       <param name="LevelMin" value="WARNING"/>
       <param name="AcceptOnMatch" value="true"/>
   </filter>
 </appender>

 <!-- COMPASS Daily Rolling File Appender ERROR -->
 <appender name="CompassDailyFileAppenderError"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
   <param name="file" value="${catalina.home}/logs/compass.log.ERROR" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
       <param name="LevelMax" value="ERROR"/>
       <param name="LevelMin" value="ERROR"/>
       <param name="AcceptOnMatch" value="true"/>
   </filter>
 </appender>

 <!-- COMPASS Daily Rolling File Appender FATAL -->
 <appender name="CompassDailyFileAppenderFatal"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
   <param name="file" value="${catalina.home}/logs/compass.log.FATAL" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
       <param name="LevelMax" value="FATAL"/>
       <param name="LevelMin" value="FATAL"/>
       <param name="AcceptOnMatch" value="true"/>
   </filter>
 </appender>

 <logger name="IndexLogger" additivity="false">
   <appender-ref ref="IndexDOMDailyFileAppenderInfo" />
   <appender-ref ref="IndexDOMDailyFileAppenderWarning" />
   <appender-ref ref="IndexDOMDailyFileAppenderError" />
   <appender-ref ref="IndexDOMDailyFileAppenderFatal" />
 </logger>

 <logger name="CompassLogger" additivity="false">
   <level value="info" />
   <appender-ref ref="CompassDailyFileAppenderInfo" />
   <appender-ref ref="CompassDailyFileAppenderWarning" />
   <appender-ref ref="CompassDailyFileAppenderError" />
   <appender-ref ref="CompassDailyFileAppenderFatal" />
 </logger>
</log4j:configuration>

And finally, this is the configuration from the Servlet OccupationDOM:

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

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/";>
<!-- Daily Rolling File Appender TRACE, DEBUG, INFO -->
 <appender name="OccupationDOMDailyFileAppenderInfo"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
   <param name="file" value="${catalina.home}/logs/OccupationDOM.log.INFO" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
       <param name="LevelMax" value="INFO"/>
       <param name="LevelMin" value="TRACE"/>
       <param name="AcceptOnMatch" value="true"/>
   </filter>
 </appender>

 <!-- Daily Rolling File Appender WARNING -->
 <appender name="OccupationDOMDailyFileAppenderWarning"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
   <param name="file" value="${catalina.home}/logs/OccupationDOM.log.WARN" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
       <param name="LevelMax" value="WARNING"/>
       <param name="LevelMin" value="WARNING"/>
       <param name="AcceptOnMatch" value="true"/>
   </filter>
 </appender>

 <!-- Daily Rolling File Appender ERROR -->
 <appender name="OccupationDOMDailyFileAppenderError"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
   <param name="file" value="${catalina.home}/logs/OccupationDOM.log.ERROR" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
       <param name="LevelMax" value="ERROR"/>
       <param name="LevelMin" value="ERROR"/>
       <param name="AcceptOnMatch" value="true"/>
   </filter>
 </appender>

 <!-- Daily Rolling File Appender FATAL -->
 <appender name="OccupationDOMDailyFileAppenderFatal"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
   <param name="file" value="${catalina.home}/logs/OccupationDOM.log.FATAL" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
       <param name="LevelMax" value="FATAL"/>
       <param name="LevelMin" value="FATAL"/>
       <param name="AcceptOnMatch" value="true"/>
   </filter>
 </appender>

 <!-- COMPASS Daily Rolling File Appender TRACE, DEBUG, INFO -->
 <appender name="CompassDailyFileAppenderInfo"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
   <param name="file" value="${catalina.home}/logs/compass.log.INFO" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
       <param name="LevelMax" value="INFO"/>
       <param name="LevelMin" value="INFO"/>
       <param name="AcceptOnMatch" value="true"/>
   </filter>
 </appender>

 <!-- COMPASS Daily Rolling File Appender WARNING -->
 <appender name="CompassDailyFileAppenderWarning"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
   <param name="file" value="${catalina.home}/logs/compass.log.WARN" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
       <param name="LevelMax" value="WARNING"/>
       <param name="LevelMin" value="WARNING"/>
       <param name="AcceptOnMatch" value="true"/>
   </filter>
 </appender>

 <!-- COMPASS Daily Rolling File Appender ERROR -->
 <appender name="CompassDailyFileAppenderError"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
   <param name="file" value="${catalina.home}/logs/compass.log.ERROR" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
       <param name="LevelMax" value="ERROR"/>
       <param name="LevelMin" value="ERROR"/>
       <param name="AcceptOnMatch" value="true"/>
   </filter>
 </appender>

 <!-- COMPASS Daily Rolling File Appender FATAL -->
 <appender name="CompassDailyFileAppenderFatal"
class="org.apache.log4j.DailyRollingFileAppender">
   <param name="datePattern" value="'.'yyyy-MM-dd" />
   <param name="Append" value="true" />
   <param name="file" value="${catalina.home}/logs/compass.log.FATAL" />
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern"
            value="%d{ISO8601}\t%-5p\t%X{session}\t%X{file}\t[%t]:\t%m%n" />
   </layout>
   <filter class="org.apache.log4j.varia.LevelRangeFilter">
       <param name="LevelMax" value="FATAL"/>
       <param name="LevelMin" value="FATAL"/>
       <param name="AcceptOnMatch" value="true"/>
   </filter>
 </appender>

 <logger name="OccupationLogger" additivity="false">
   <appender-ref ref="OccupationDOMDailyFileAppenderInfo" />
   <appender-ref ref="OccupationDOMDailyFileAppenderWarning" />
   <appender-ref ref="OccupationDOMDailyFileAppenderError" />
   <appender-ref ref="OccupationDOMDailyFileAppenderFatal" />
 </logger>

 <logger name="CompassLogger" additivity="false">
   <level value="info" />
   <appender-ref ref="CompassDailyFileAppenderInfo" />
   <appender-ref ref="CompassDailyFileAppenderWarning" />
   <appender-ref ref="CompassDailyFileAppenderError" />
   <appender-ref ref="CompassDailyFileAppenderFatal" />
 </logger>
/log4j:configuration>

Any suggestions will result in an instant improvement of ypu personal carma...

Gregor
--
what's puzzlin' you, is the nature of my game
gpgp-fp: 79A84FA526807026795E4209D3B3FE028B3170B2
gpgp-key available @ http://pgpkeys.pca.dfn.de:11371

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to