You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by Michael Karas <Mi...@iteratec.de> on 2004/07/05 17:14:20 UTC

Context specific appenders for log4j

Hi log4j-dev-list !

We have developed 2 useful appenders for log4j which can be used for 
a file-logging on a context specific basis.

The context-key has to be set via MDC for each Thread.
The name of the key can be set as a parameter..(see log4j.xml below)

Therefore instead of having only one Logfile with pattern Like [Context: %8X{CONTEXT}] 
it is now possible to have separate Logfiles on a context-specific basis.
Additional any Logging with an empty MDC-Context-Key goes into a default Logfile.

The RollingContextFileAppender uses RollingFileAppenders internal, the DailyRollingContextFileAppenders uses
- guess what - DailyRollingFileAppenders internal....


example log4j.xml configuration:
.....
  <appender name="Context_Appender" class="org.apache.log4j.RollingContextFileAppender"> 
    <param name="ContextKey" value="MYCONTEXT"/>	    <!-- Context key to be used (has to be set via MDC) -->
    <param name="FileName" value="c:/BSP_log"/>            <!-- Path and Filename -->
    <param name="MaxDefaultFileSize" value="5MB"/>        <!-- Maximum size of the default log (optional) -->
    <param name="MaxDefaultBackupIndex" value="3"/>    <!-- Maximum backup index of the default log (optional) -->  
    <param name="MaxContextFileSize" value="1MB"/>       <!-- Maximum lofsize PER CONTEXT (optional) -->
    <param name="MaxContextBackupIndex" value="3"/>    <!-- Maximum backup index of EACH CONTEXT (optional) -->     <layout class="org.apache.log4j.PatternLayout">
    	<param name="ConversionPattern" value="[%d{ISO8601}] %5p - %-18c : %m%n"/>
    </layout>
  </appender> 
.......

See javadoc for all options / mandatory configurations....

=> Hope this contribution helps anyone ;)

Yours,

Michael Karas