<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
   <!-- general application log --> 
   <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
      <param name="Threshold" value="INFO" /> 
      <layout class="org.apache.log4j.PatternLayout"> 
         <param name="ConversionPattern" value="%-5p %d [%t] %c{1}: %m%n"/> 
      </layout> 
   </appender>

   <!-- harvester log --> 
   <appender name="HarvesterLog" class="org.apache.log4j.rolling.RollingFileAppender">
      <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
         <param name="FileNamePattern" value="${edex.home}/logs/edex-${edex.run.mode}-harvester-%d{yyyyMMdd}.log"/>
      </rollingPolicy> 

      <layout class="org.apache.log4j.PatternLayout"> 
         <param name="ConversionPattern" value="%-5p %d [%t] %c{1}: %m%n"/> 
      </layout> 
   </appender>
   
   <!-- BandwidthManager log --> 
   <appender name="BandwidthManagerLog" class="org.apache.log4j.rolling.RollingFileAppender">
      <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
         <param name="FileNamePattern" value="${edex.home}/logs/edex-${edex.run.mode}-bandwidth-%d{yyyyMMdd}.log"/>
      </rollingPolicy> 

      <layout class="org.apache.log4j.PatternLayout"> 
         <param name="ConversionPattern" value="%-5p %d [%t] %c{1}: %m%n"/> 
      </layout> 
   </appender> 

   <!-- data delivery log --> 
   <appender name="DataDeliveryLog" class="org.apache.log4j.rolling.RollingFileAppender">
      <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
         <param name="FileNamePattern" value="${edex.home}/logs/edex-${edex.run.mode}-datadelivery-%d{yyyyMMdd}.log"/>
      </rollingPolicy> 

      <layout class="org.apache.log4j.PatternLayout"> 
         <param name="ConversionPattern" value="%-5p %d [%t] %c{1}: %m%n"/> 
      </layout> 
   </appender> 

   <!-- Purge log -->
   <appender name="PurgeLog" class="org.apache.log4j.rolling.RollingFileAppender">
      <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
         <param name="FileNamePattern" value="${edex.home}/logs/edex-${edex.run.mode}-purge-%d{yyyyMMdd}.log"/>
      </rollingPolicy>

      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%-5p %d [%t] %c{1}: %m%n"/>
      </layout>
   </appender>

   <appender name="ThreadBasedLog" class="com.raytheon.uf.edex.log.ThreadBasedAppender">
      <param name="ThreadPatterns" value="HarvesterLog:harvesterThreadPool.*,crawlerThreadPool.*,Crawler.*"/>
      <param name="DefaultAppender" value="console"/>
      <appender-ref ref="console"/>
      <appender-ref ref="HarvesterLog"/>
   </appender>

   <logger name="com.raytheon">
      <level value="INFO"/>
   </logger>

   <!-- used by c3p0 -->
   <logger name="com.mchange">
      <level value="ERROR"/>
   </logger>
   <logger name="com.tc">
      <level value="WARN"/>
   </logger>
   <logger name="mx4j">
      <level value="ERROR"/>
   </logger>
   <logger name="org.apache">
      <level value="INFO"/>
   </logger>
   <logger name="org.apache.activemq.spring">
      <level value="WARN"/>
   </logger>
   <logger name="org.apache.camel.impl.converter.DefaultTypeConverter">
      <level value="ERROR"/>
   </logger>
   <logger name="org.apache.qpid">
      <level value="INFO"/>
   </logger>
   <logger name="org.apache.qpid.client.BasicMessageProducer_0_10">
      <level value="WARN"/>
   </logger>
   <logger name="org.apache.xbean.spring">
      <level value="WARN"/>
   </logger>
   <logger name="org.jgroup">
      <level value="ERROR"/>
   </logger>
   <logger name="org.quartz">
      <level value="ERROR"/>
   </logger>
   <logger name="org.springframework">
      <level value="ERROR"/>
   </logger>
   <logger name="uk.ltd.getahead">
      <level value="WARN"/>
   </logger>
   <logger name="org.hibernate">
      <level value="ERROR"/>
   </logger>
   <logger name="org.geotools">
      <level value="WARN"/>
   </logger>
   <logger name="edu">
      <level value="WARN" />
   </logger>

   <logger name="com.raytheon.uf.common.datadelivery" additivity="false">
        <level value="INFO"/>
        <appender-ref ref="DataDeliveryLog"/>
   </logger>

   <!-- Registry events to go to main registry log -->
   <logger name="com.raytheon.uf.common.datadelivery.registry" additivity="false">
        <level value="INFO"/>
        <appender-ref ref="console"/>
   </logger>

   <logger name="com.raytheon.uf.common.datadelivery.bandwidth" additivity="false">
        <level value="INFO"/>
        <appender-ref ref="BandwidthManagerLog"/>
   </logger>
   
   <logger name="com.raytheon.uf.edex.datadelivery.bandwidth" additivity="false">
        <level value="INFO"/>
        <appender-ref ref="BandwidthManagerLog"/>
   </logger>

   <logger name="com.raytheon.uf.edex.datadelivery.harvester.purge" additivity="false">
        <level value="INFO"/>
        <appender-ref ref="PurgeLog"/>
   </logger>

   <!-- default logging --> 
   <root> 
      <level value="INFO"/>
      <appender-ref ref="ThreadBasedLog"/>
    </root> 
</log4j:configuration>