<?xml version="1.0" encoding="UTF-8" ?>
<configuration debug="true">
    <property name="logger.out" value="console" />
    <property name="logPattern" value="%d{ISO8601} [%thread] %-5level %X{loanFileNr} %logger{36} - %m%n%rEx"/>
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${logPattern}</pattern>
        </encoder>
    </appender>

    <!--Basic file appender<appender name="FILE"
        class="ch.qos.logback.core.FileAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%-4relative [%thread] %-5level %class - %msg%n</pattern>
        </layout>
        <File>sample-log.txt</File>
    </appender>-->

    <!--Daily rolling file appender -->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${catalina.base}/logs/caseportal.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${catalina.base}/logs/caseportal-%d.log.zip</FileNamePattern>
            <maxHistory>120</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${logPattern}</pattern>
        </encoder>
    </appender>

    <appender name="deletion" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${catalina.base}/logs/cp-deletion.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${catalina.base}/logs/cp-deletion-%d.log.zip</FileNamePattern>
            <maxHistory>120</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${logPattern}</pattern>
        </encoder>
    </appender>

    <appender name="restore" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${catalina.base}/logs/cp-restore.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${catalina.base}/logs/cp-restore-%d.log.zip</FileNamePattern>
            <maxHistory>120</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${logPattern}</pattern>
        </encoder>
    </appender>

    <appender name="natives" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${catalina.base}/logs/cp-natives.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${catalina.base}/logs/cp-natives-%d.log.zip</FileNamePattern>
            <maxHistory>120</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${logPattern}</pattern>
        </encoder>
    </appender>

    <appender name="retentionperiodad" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${catalina.base}/logs/cp-retentionperiodad.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${catalina.base}/logs/cp-retentionperiodad-%d.log.zip</FileNamePattern>
            <maxHistory>120</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${logPattern}</pattern>
        </encoder>
    </appender>

    <appender name="mongodb" class="ch.qos.logback.contrib.mongodb.MongoDBLoggingEventAppender">
        <uri>${mongodb.uri}</uri>
        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
            <evaluator>
                <expression>return formattedMessage.contains("#admin#");</expression>
            </evaluator>
            <OnMismatch>NEUTRAL</OnMismatch>
            <OnMatch>${mongodb.logAdmin}</OnMatch>
        </filter>
    </appender>

    <logger name="org.springframework" level="ERROR"/>
    <logger name="org.springframework.jdbc.core.simple" level="debug"/>

    <logger name="root.package.core.service.deletion" level="DEBUG">
    	<appender-ref ref="deletion"/>
    </logger>
    <logger name="root.package.core.domain.deletion" level="DEBUG">
    	<appender-ref ref="deletion"/>
    </logger>
    <logger name="root.package.core.scheduledtasks.BulkDeletionCron" level="DEBUG">
    	<appender-ref ref="deletion"/>
    </logger>
    <logger name="root.package.frontend.runners.BulkDeletionRunner" level="DEBUG">
    	<appender-ref ref="deletion"/>
    </logger>

    <logger name="root.package.core.service.restore" level="DEBUG">
    	<appender-ref ref="restore"/>
    </logger>
    <logger name="root.package.core.scheduledtasks.RestoreCron" level="DEBUG">
    	<appender-ref ref="restore"/>
    </logger>
    <logger name="root.package.core.service.natives" level="INFO">
    	<appender-ref ref="restore"/>
    </logger>

    <logger name="root.package.core.service.natives" level="DEBUG">
    	<appender-ref ref="natives"/>
    </logger>
    
    <logger name="root.package.core.scheduledtasks.RetentionPeriodAdCron" level="TRACE">
    	<appender-ref ref="retentionperiodad"/>
    </logger>
    <logger name="root.package.core.ad.authorize.ActiveDirectoryClient" level="TRACE">
    	<appender-ref ref="retentionperiodad"/>
    </logger>

    <logger name="com.mysema.query" level="INFO"/>
    <logger name="org.picketlink" level="TRACE"/>
    <logger name="org.jboss.logging" level="TRACE"/>
    <logger name="root.package" level="DEBUG"/>
    <logger name="org.dozer" level="info"/>
    <logger name="org.apache.http" level="info"/>
    <logger name="org.apache.http.wire" level="info"/>
    <logger name="root.package.core.logging" level="DEBUG">
        <appender-ref ref="mongodb"/>
    </logger>
    <logger name="com.mchange.v2" level="ERROR"/>

    <root level="debug">
        <appender-ref ref="file"/>
    </root>
</configuration>
