<?xml version="1.0" encoding="UTF-8" ?>

<!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
   distributed with this work for additional information
   regarding copyright ownership.  The ASF licenses this file
   to you under the Apache License, Version 2.0 (the
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
-->

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - J[%X{JID}] T[%X{TID}] %X{METHOD} %m%n"/> 
    </layout> 
  </appender> 
  
  <appender name="3rd-party" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %5p %c{1} - J[%X{JID}] T[%X{TID}] %X{METHOD} %m%n"/> 
    </layout> 
  </appender> 
  
  <appender name="jd-log" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %5p %c{1} - T[%X{TID}] %X{METHOD} %m%n"/> 
    </layout> 
  </appender> 
  
  <appender name="jp-log" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %5p %c{1} - T[%X{TID}] %X{METHOD} %m%n"/> 
    </layout> 
  </appender> 
  
  <appender name="cli-console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%m%n"/> 
    </layout> 
  </appender>
  
  <appender name="rmlog" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender"> 
    <param name="append" value="true"/>
    <param name="file" value="${DUCC_HOME}/logs/rm.log"/>
    <param name="maxBackupIndex" value="5" />
    <param name="maxFileSize" value="10MB" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1}- %X{JID} %X{METHOD} %m%n"/> 
    </layout> 
  </appender> 
  
  <appender name="orlog" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender"> 
    <param name="append" value="true"/>
    <param name="file" value="${DUCC_HOME}/logs/or.log"/>
    <param name="maxBackupIndex" value="5" />
    <param name="maxFileSize" value="10MB" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - %X{JID} %X{METHOD} %m%n"/> 
    </layout> 
  </appender> 
  
  <appender name="smlog" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender"> 
    <param name="append" value="true"/>
    <param name="file" value="${DUCC_HOME}/logs/sm.log"/>
    <param name="maxBackupIndex" value="5" />
    <param name="maxFileSize" value="10MB" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - %X{JID} %X{METHOD} %m%n"/> 
    </layout> 
  </appender> 

  <appender name="pmlog" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender"> 
    <param name="append" value="true"/>
    <param name="file" value="${DUCC_HOME}/logs/pm.log"/>
    <param name="maxBackupIndex" value="5" />
    <param name="maxFileSize" value="10MB" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - %X{JID} %X{METHOD} %m%n"/> 
    </layout> 
  </appender> 

  <appender name="wslog" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender"> 
    <param name="append" value="true"/>
    <param name="file" value="${DUCC_HOME}/logs/ws.${DUCC_NODENAME}.log"/>
    <param name="maxBackupIndex" value="5" />
    <param name="maxFileSize" value="10MB" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - %X{JID} %X{METHOD} %m%n"/> 
    </layout> 
  </appender> 
  
  <appender name="jdout" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender"> 
    <param name="append" value="true"/>
    <param name="file" value="${ducc.process.log.dir}/jd.out.log"/>
    <param name="maxBackupIndex" value="5" />
    <param name="maxFileSize" value="10MB" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - T[%X{TID}] %X{METHOD} %m%n"/> 
    </layout> 
  </appender> 
  
  <appender name="jderr" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender"> 
    <param name="append" value="true"/>
    <param name="file" value="${ducc.process.log.dir}/jd.err.log"/>
    <param name="maxBackupIndex" value="5" />
    <param name="maxFileSize" value="10MB" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - T[%X{TID}] %X{METHOD} %m%n"/> 
    </layout> 
  </appender> 

  <appender name="agentlog" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender"> 
    <param name="append" value="true"/>
    <param name="file" value="${DUCC_HOME}/logs/${DUCC_NODENAME}.${ducc.deploy.components}.log"/>
    <param name="maxBackupIndex" value="5" />
    <param name="maxFileSize" value="10MB" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - J[%X{JID}] T[%X{TID}] %X{METHOD} %m%n"/> 
    </layout> 
  </appender> 

  <appender name="db-loader-log" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender"> 
    <param name="append" value="true"/>
    <param name="file" value="${DUCC_HOME}/logs/db.loader.log"/>
    <param name="maxBackupIndex" value="20" />
    <param name="maxFileSize" value="20MB" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - T[%X{TID}] %X{METHOD} %m%n"/> 
    </layout> 
  </appender> 
  
   <category name="org.apache.uima.ducc.rm" additivity="false">
     <priority value="debug"/>
     <appender-ref ref="rmlog" /> 
   </category>

   <!-- Please keep these for reference as they focus on specific components of interest during debug. -->
   <!-- category name="org.apache.uima.ducc.rm.JobManagerConverter" additivity="true">
     <priority value="info"/>
     <appender-ref ref="rmlog" /> 
   </category>

   <category name="org.apache.uima.ducc.rm.NodeStability" additivity="true">
     <priority value="debug"/>
     <appender-ref ref="rmlog" /> 
   </category>

   <category name="org.apache.uima.ducc.rm.ResourceManagerComponent" additivity="true">
     <priority value="info"/>
     <appender-ref ref="rmlog" /> 
   </category -->

   <category name="org.apache.uima.ducc.orchestrator" additivity="false">
     <priority value="info"/>
     <appender-ref ref="orlog" /> 
   </category>

   <category name="org.apache.uima.ducc.agent" additivity="false">
     <priority value="debug"/>
     <appender-ref ref="agentlog" />
   </category>

   <category name="org.apache.uima.ducc.agent.deploy" additivity="false">
     <priority value="off"/>
     <appender-ref ref="agentlog" />
   </category>

   <category name="org.apache.uima.ducc.jd" additivity="false">
     <priority value="info"/>
     <appender-ref ref="jdout" />
   </category>

   <category name="org.apache.uima.ducc.sm" additivity="false">
     <priority value="info"/>
     <appender-ref ref="smlog" /> 
   </category>

   <category name="org.apache.uima.ducc.pm" additivity="false">
     <priority value="debug"/>
     <appender-ref ref="pmlog" /> 
   </category>

   <category name="org.apache.uima.ducc.ws" additivity="false">
     <priority value="info"/>
     <appender-ref ref="wslog" /> 
   </category>

   <category name="org.apache.uima.ducc.user.err" additivity="true">
     <priority value="info"/>
     <appender-ref ref="jderr" /> 
   </category>

   <category name="com.datastax.driver.core">
     <priority value="warn"/>
   </category>

   <category name="org.apache.activemq">
     <priority value="warn"/>
   </category>

   <category name="org.springframework">
     <priority value="warn"/>
   </category>

   <category name="org.apache.camel">
     <priority value="warn"/>
     <appender-ref ref="3rd-party" /> 
   </category>
   
   <category name="org.apache.camel.impl.converter">
     <priority value="error"/>
     <appender-ref ref="3rd-party" /> 
   </category>

   <category name="org.apache.uima.ducc.cli" additivity="false">
     <priority value="info"/>
     <appender-ref ref="cli-console" />
   </category>
   
   <category name="org.apache.uima.ducc.container" additivity="false">
     <priority value="info"/>
     <appender-ref ref="jd-log" /> 
   </category>

   <category name="org.apache.uima.ducc.transport.configuration.jd" additivity="false">
     <priority value="info"/>
     <appender-ref ref="jd-log" /> 
   </category>

   <category name="org.apache.uima.ducc.transport.configuration.jp" additivity="false">
     <priority value="info"/>
     <appender-ref ref="jp-log" /> 
   </category>

   <!-- cassandra client -->
   <category name="com.datastax.driver">
     <priority value="warn"/>
   </category>

   <category name="org.apache.uima.ducc.database.DbLoader" additivity="true">
     <priority value="info"/>
     <appender-ref ref="db-loader-log" /> 
   </category>
   
   <!-- This should catch the use of any DUCC classes not explicitly specified above -->
   <category name="org.apache.uima.ducc" additivity="false">
     <priority value="info"/>
     <appender-ref ref="console" /> 
   </category>

   <!-- This should be used by all non-DUCC 3rd-party code -->
  <root> 
    <priority value = "info" /> 
    <appender-ref ref="3rd-party" /> 
  </root>
  
</log4j:configuration>
