<?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} - %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="cli-console-ts" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %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="50" />
    <param name="maxFileSize" value="20MB" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - %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="20" />
    <param name="maxFileSize" value="20MB" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - %m%n"/> 
    </layout> 
  </appender> 

  <appender name="ormon" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender"> 
    <param name="append" value="true"/>
    <param name="file" value="${DUCC_HOME}/logs/or.mon"/>
    <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} - %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" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - %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" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - %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.${NodeName}.log"/>
    <param name="maxBackupIndex" value="5" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %X{TID} %5p %X{COMPONENT}.%c{1} - %m%n"/> 
    </layout> 
  </appender> 
  
  <appender name="vizlog" class="org.apache.uima.ducc.common.utils.DeferredOpenRollingAppender"> 
    <param name="append" value="true"/>
    <param name="file" value="${DUCC_HOME}/logs/viz.${NodeName}.log"/>
    <param name="maxBackupIndex" value="5" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %X{TID} %5p %X{COMPONENT}.%c{1} - %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="20" />
    <param name="maxFileSize" value="20MB" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %X{TID} %5p %c{2} %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" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %X{TID} %5p %c{2} %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/${NodeName}.${ducc.deploy.components}.log"/>
    <param name="maxBackupIndex" value="5" />
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{DATE} %5p %X{COMPONENT}.%c{1} - %m%n"/> 
    </layout> 
  </appender> 

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

   <category name="org.apache.uima.ducc.rm.JobManagerConverter" additivity="true">
     <priority value="debug"/>
     <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="debug"/>
     <appender-ref ref="rmlog" /> 
   </category>

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

   <category name="org.apache.uima.ducc.orchestrator.monitor" additivity="false">
     <priority value="info"/>
     <appender-ref ref="ormon" /> 
   </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="true">
     <priority value="debug"/>
     <appender-ref ref="smlog" /> 
   </category>

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

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

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

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

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

   <category name="org.springframework.beans.factory">
     <priority value="off"/>
   </category>

   <category name="org.apache.camel">
     <priority value="off"/>
   </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.cli-ts" additivity="false">
     <priority value="info"/>
     <appender-ref ref="cli-console-ts" />
   </category>
   
  <root> 
    <priority value ="info" /> 
    <appender-ref ref="console" /> 
  </root>
  
</log4j:configuration>
