<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<!-- Do not delete the SecureTransport VERSION line below. -->
<!-- ~VERSION~ 1 -->

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS z} %p [%t] %c - %m%n" />
        </layout>
    </appender>

    <appender name="ToolsLog" class="org.apache.log4j.FileAppender">
		<param name="File" value="/opt/Axway/SecureTransport/var/logs/tools.log"/>
        <param name="Append" value="true" />
		<layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS z} %p [%t] %c - %m%n"/>
        </layout> 
    </appender>
    
    <appender class="org.apache.log4j.FileAppender" name="migration">
        <param name="File" value="/opt/Axway/SecureTransport/var/logs/migration.log"/>
        <param name="Append" value="true"/>

        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %p [%t] %c - %m%n"/>
        </layout>
    </appender>
    
    <appender name="AuditLogAppender" class="com.tumbleweed.st.server.logging.db.STDBAppender">
        <param name="locationInfo" value="true"/>
        <param name="maxLoggingEventQueueSize" value="10000"/>
        <param name="fallbackLogger" value="ServerLogFallback"/>
        <param name="databaseStatusCheckupDelay" value="60"/>
        <param name="databaseCheckupTimeout" value="30"/>

        <!-- WARNING - changing the id area may cause deletion of existing logs
                and crash of the appender! -->
        <param name="idAreaBegin" value="-230000000000"/>
        <param name="idAreaEnd" value="-220000000000"/>

        <!-- Connection pool parameters -->
        <param name="driverClass" value="com.mysql.jdbc.Driver"/>
        <param name="initialPoolSize" value="5"/>
        <param name="maxPoolSize" value="25"/>
        <param name="minPoolSize" value="5"/>
        <param name="acquireIncrement" value="5"/>
        <param name="maxStatements" value="4000"/>

        <filter class="com.tumbleweed.st.server.logging.STLog4JNDCFilter">
            <param name="ComponentName" value="AUDIT"/>
        </filter>
    </appender>

    <appender name="ServerLogFallback" class="org.apache.log4j.FileAppender"> 
      <param name="file" value="/opt/Axway/SecureTransport/var/logs/serverlog-fallback.log"/>
      <param name="append" value="true"/>
      <layout class="org.apache.log4j.PatternLayout"> 
        <param name="ConversionPattern" value="%d{ISO8601} [%t] %p %c %x - %m%n"/> 
      </layout> 
    </appender>
    
   	<appender name="ServerLog" class="com.tumbleweed.st.server.logging.db.STDBAppender">
        <param name="locationInfo" value="true"/>
        <param name="maxLoggingEventQueueSize" value="10000"/>
        <param name="fallbackLogger" value="ServerLogFallback"/>
        <param name="databaseStatusCheckupDelay" value="60"/>
        <param name="databaseCheckupTimeout" value="30"/>
        
        <!-- WARNING - changing the id area may cause deletion of existing logs
        	and crash of the appender! -->
        <param name="idAreaBegin" value="-460000000000"/>
        <param name="idAreaEnd" value="-360000000000"/>
        
        <!-- Connection pool parameters -->
        <param name="driverClass" value="com.mysql.jdbc.Driver"/>
        <param name="initialPoolSize" value="5"/>
        <param name="maxPoolSize" value="25"/>
        <param name="minPoolSize" value="5"/>
        <param name="acquireIncrement" value="5"/>
        <param name="maxStatements" value="4000"/>

        <filter class="com.tumbleweed.st.server.logging.STLog4JNDCFilter">
            <param name="ComponentName" value="AUDIT"/>
        </filter>

    </appender>
    
    <appender name="ImprovedRoutingAppender" class="com.tumbleweed.st.server.logging.db.STDBAppender">
    	<param name="locationInfo" value="true"/>
        <param name="maxLoggingEventQueueSize" value="10000"/>
        <param name="fallbackLogger" value="ServerLogFallback"/>
        <param name="databaseStatusCheckupDelay" value="60"/>
        <param name="databaseCheckupTimeout" value="30"/>
        
        <!-- WARNING - changing the id area may cause deletion of existing logs
        	and crash of the appender! -->
        <param name="idAreaBegin" value="-350000000000"/>
        <param name="idAreaEnd" value="-340000000000"/>
        
        <!-- Connection pool parameters -->
        <param name="driverClass" value="com.mysql.jdbc.Driver"/>
        <param name="initialPoolSize" value="30"/>
        <param name="maxPoolSize" value="100"/>
        <param name="minPoolSize" value="30"/>
        <param name="acquireIncrement" value="7"/>
        <param name="maxStatements" value="4000"/>
        <param name="conversionPattern" value="%X{code}: [%X{accountName}] [%X{routeName}]  %m"/>

        <filter class="com.tumbleweed.st.server.logging.STLog4JNDCFilter">
            <param name="ComponentName" value="AUDIT"/>
        </filter>

    </appender>

    <!-- level value can be
         all   = the lowest possible rank and is intended to turn on all logging.
         debug = fine-grained informational events that are most useful to debug an application.
         info  = informational messages that highlight the progress of the application at coarse-grained level.
         warn  = potentially harmful situations.
         error = error events that might still allow the application to continue running.
         fatal = very severe error events that will presumably lead the application to abort.
         off   = the highest possible rank and is intended to turn off logging.
    -->

    <logger name="ServerLogFallback" additivity="false">
        <level value="info" />
        <appender-ref ref="ServerLogFallback" />
    </logger>

    <logger name="com.tumbleweed.st.server.appframework.datamigration" additivity="false">
        <level value="all" />
        <appender-ref ref="migration" />
    </logger>
    
    <!-- special IMPROVED_ROUTING logger -->
    <logger name="com.axway.st.server.route" additivity="false">
        <level value="info" />
        <appender-ref ref="ImprovedRoutingAppender" />
    </logger>
    
    <!-- ST logger -->
    <logger name="com.tumbleweed" additivity="false">
        <level value="warn" />
        <appender-ref ref="console" />
        <appender-ref ref="ToolsLog" />
    </logger>
    
    <logger name="com.tumbleweed.st.server.exportimport" additivity="false">
        <level value="warn" />
        <appender-ref ref="ToolsLog" />
    </logger>

	<!-- Tomcat logger -->
    <logger name="org.apache" additivity="false">
        <level value="warn" />
        <appender-ref ref="ServerLog" />
    </logger>
    
    <!-- Jboss logger -->
    <logger name="org.jboss.logging" additivity="false">
        <level value="error" />
        <appender-ref ref="ServerLog" />
    </logger>
    
    <!-- Hibernate logger -->
    <logger name="org.hibernate" additivity="false">
        <level value="error" />
        <appender-ref ref="console" />
        <appender-ref ref="ToolsLog" />
    </logger>

    <!-- Mchange logger -->
    <logger name="com.mchange" additivity="false">
        <level value="warn" />
        <appender-ref ref="console" />
        <appender-ref ref="ToolsLog" />
    </logger>

    <!-- Ehcache logger -->
    <logger name="net.sf.ehcache" additivity="false">
        <level value="error" />
        <appender-ref ref="console" />
        <appender-ref ref="ToolsLog" />
    </logger>

    <logger name="com.tangosol" additivity="false">
        <level value="error" />
        <appender-ref ref="console" />
        <appender-ref ref="ToolsLog" />
    </logger>

    <logger name="Coherence" additivity="false">
        <level value="error" />
        <appender-ref ref="console" />
        <appender-ref ref="ToolsLog" />
    </logger>

    <!-- Quartz logger -->
    <logger name="org.quartz" additivity="false">
        <level value="error" />
        <appender-ref ref="console" />
         <appender-ref ref="ToolsLog" />
    </logger>
    
    <!-- special AUDIT logger -->
    <logger name="AUDIT" additivity="false">
        <level value="all" />
        <appender-ref ref="AuditLogAppender" />
    </logger>
    

    <!-- JGroups logger -->
    <logger name="org.jgroups" additivity="false">
        <level value="warn" />
        <appender-ref ref="console" />
        <appender-ref ref="ToolsLog" />
    </logger>

    <logger name="com.axway.st.server.tm.shutdown" additivity="false" >
        <level value="info" />
        <appender-ref ref="ServerLog" />
    </logger>

    <logger name="com.tumbleweed.st.server.util.cli.ImportCertificateAuthorityCLI" additivity="false">
        <level value="info" />
        <appender-ref ref="ToolsLog" />
        <appender-ref ref="ServerLog" />
   </logger>
</log4j:configuration>
