<?xml version="1.0" encoding="UTF-8"?>
<!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"/>
    <param name="Threshold" value="${its.logging.level}"/>
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} | %-5p | %-30c{1} | %-32t | %m%n"/>
    </layout>
  </appender>
  <appender name="file" class="itplacemanager.ITRollingFileAppender">
    <param name="Threshold" value="INFO"/>
    <param name="File" value="logs/its-server.log"/>
    <param name="MaxFileSize" value="10MB"/>
    <param name="MaxBackupIndex" value="3"/>
    <layout class="itplacemanager.ITLogLayout">
      <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} | %-5p | %-30c{1} | %-32t | %m%n"/>
    </layout>
  </appender>
  <appender name="diagnostics" class="itplacemanager.ITRollingFileAppender">
    <param name="File" value="logs/its-diagnostics.log"/>
    <param name="MaxFileSize" value="10MB"/>
    <param name="MaxBackupIndex" value="3"/>
    <layout class="itplacemanager.ITLogLayout">
      <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} | %-5p | %-30c{1} | %-32t | %m%n"/>
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
      <param name="LevelMin" value="TRACE"/>
      <param name="LevelMax" value="DEBUG"/>
      <param name="AcceptOnMatch" value="true"/>
    </filter>
  </appender>
  <!-- Class loggers already reach both appenders; suppress legacy channel copies here only. -->
  <appender name="channelCopies" class="org.apache.log4j.varia.NullAppender"/>
  <logger name="CONSOLE" additivity="false"><level value="DEBUG"/><appender-ref ref="channelCopies"/></logger>
  <logger name="ERROR" additivity="false"><level value="ERROR"/><appender-ref ref="channelCopies"/></logger>
  <logger name="EXCEPTION" additivity="false"><level value="ERROR"/><appender-ref ref="channelCopies"/></logger>
  <logger name="INFO" additivity="false"><level value="INFO"/><appender-ref ref="channelCopies"/></logger>
  <root>
    <priority value="${its.logging.level}"/>
    <appender-ref ref="console"/>
    <appender-ref ref="file"/>
    <appender-ref ref="diagnostics"/>
  </root>
</log4j:configuration>
