<?xml version="1.0" ?>
<configuration scan="true" scanPeriod="30 seconds">
    <property name="rolling.file.encoder.pattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %-5level : loggerName=&quot;%logger{36}&quot; threadName=&quot;%thread&quot; txnId=&quot;%X{txnId}&quot; %msg%n" />
    <property name="rolling.file.max.size" value="100MB" />
    <property name="rolling.file.max.history" value="3" />
    <property name="appender.queue.size" value="500" />

    <include resource="logback-${logback.appName}.xml" optional="true" />

    <!-- Enable LevelChangePropagator for jul-to-slf4j optimization -->
    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"/>

    <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logback.loggingDirectory:-${HOME}/log}/${logback.appName}.log}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- rollover daily -->
                <fileNamePattern>${logback.loggingDirectory:-${HOME}/log}/${logback.appName}-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
                <!-- or whenever the file size reaches the max -->
                <maxFileSize>${rolling.file.max.size}</maxFileSize>
                <maxHistory>${rolling.file.max.history}</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${rolling.file.encoder.pattern}</pattern>
        </encoder>
    </appender>

    <appender name="METRICS" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logback.loggingDirectory:-${HOME}/log}/${logback.appName}-metrics.log}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- rollover daily -->
                <fileNamePattern>${logback.loggingDirectory:-${HOME}/log}/${logback.appName}-metrics-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
                <!-- or whenever the file size reaches the max -->
                <maxFileSize>${rolling.file.max.size}</maxFileSize>
                <maxHistory>${rolling.file.max.history}</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %-5level : %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="${logback.appName}.metrics" additivity="false">
        <appender-ref ref="METRICS" />
    </logger>


    <appender name="ASYNC-ROLLING" class="ch.qos.logback.classic.AsyncAppender">
        <queueSize>${appender.queue.size}</queueSize>
        <appender-ref ref="ROLLING" />
    </appender>
    
    <appender name="GrandPrixLog" class="ch.qos.logback.core.FileAppender">
		<file>${logback.loggingDirectory:-${HOME}/log}/ticket.log}</file>
		<encoder>
			<pattern>>%-4line %-20d{yyyy/MM/dd HH:mm:ss.S : z} [%thread] %-5level
				%logger{35} - %msg %n</pattern>
		</encoder>
	</appender>

	<appender name="AuthTokenCache" class="ch.qos.logback.core.FileAppender">
		<file>${HOME}/Grand-prix/GrandPrixAuthToken.log</file>
		<encoder>
			<pattern>%d{yyyy/MM/dd HH:mm:ss.S : z}%n%msg%n</pattern>
		</encoder>
	</appender>


	<logger name="authencation-token-chache-file" level="INFO">
		<appender-ref ref="AuthTokenCache" />
	</logger>
	
	<!-- Begin whitelist-monitor Alert incident time keeper  -->

	<appender name="whitelist-monitor-alert" class="ch.qos.logback.core.FileAppender">
		<file>${HOME}/Grand-prix/whitelist-monitor-alert-timer-cache.log</file>
		<encoder>
			<pattern>%d{yyyy/MM/dd HH:mm:ss.S : z}%msg</pattern>
		</encoder>
	</appender>

	<logger name="whitelist-monitor-alert-last-reported-incident" level="DEBUG">
		<appender-ref ref="whitelist-monitor-alert" />
	</logger>

	<!-- End of whitelist-monitor Alert -->


	<logger name="application.grandprix-logger" level="INFO">
		<appender-ref ref="GrandPrixLog" />
	</logger>

	<logger name="com.*" level="WARN" />

    <root level="INFO">
        <appender-ref ref="ASYNC-ROLLING" />
    </root>

</configuration>