<?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="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="system-events-log" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender"> 
    <param name="append" value="true"/>
    <param name="file" value="${DUCC_HOME}/logs/${DUCC_NODENAME}.system-events.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{DAEMON} %X{USER} %X{TYPE} %m%n"/> 
    </layout> 
  </appender> 
  
  <!-- This should be used by all daemons -->
  <appender name="ducc-log" 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} - %X{JID} 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="db-loader-log" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender"> 
    <param name="append" value="true"/>
    <param name="file" value="${DUCC_HOME}/logs/${DUCC_NODENAME}.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.system.events.log" additivity="false">
     <priority value="info"/>
     <appender-ref ref="system-events-log" /> 
   </category>
  
   <category name="org.apache.uima.ducc.rm" additivity="false">
     <priority value="info"/>
     <appender-ref ref="ducc-log" /> 
   </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="ducc-log" /> 
   </category>

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

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

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

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

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

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

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

   <category name="org.apache.uima.ducc.ws" additivity="false">
     <priority value="info"/>
     <appender-ref ref="ducc-log" /> 
   </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="ducc-log" /> 
   </category>
   
   <category name="org.apache.camel.impl.converter">
     <priority value="error"/>
     <appender-ref ref="ducc-log" /> 
   </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 is invoked from scripts, not by any of the daemons -->
   <category name="org.apache.uima.ducc.database.lifetime" additivity="false">
     <priority value="info"/>
     <appender-ref ref="console" /> 
   </category>
   
   <!-- This is invoked from scripts, not by any of the daemons -->
   <category name="org.apache.uima.ducc.common.main" additivity="false">
     <priority value="info"/>
     <appender-ref ref="console" /> 
   </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="ducc-log" /> 
   </category>

   <!-- Disable the Logging initialized msgs -->
   <category name="org.eclipse.jetty.util.log" additivity="false">
     <priority value="warn"/>
   </category>

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