<?xml version="1.0" encoding="UTF-8" ?>
<!-- Specify the refresh internal in seconds. -->
<Configuration monitorInterval="10" packages="org.apereo.cas.logging">
    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d %p [%c] - &lt;%m&gt;%n"/>
        </Console>
        
        <RollingFile name="file" fileName="cas.log" append="true"
                     filePattern="cas-%d{yyyy-MM-dd-HH}-%i.log">
            <PatternLayout pattern="%d %p [%c] - &lt;%m&gt;%n"/>
            <Policies>
                <OnStartupTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10 MB"/>
                <TimeBasedTriggeringPolicy />
            </Policies>
        </RollingFile>
        <RollingFile name="auditlogfile" fileName="cas_audit.log" append="true"
                     filePattern="cas_audit-%d{yyyy-MM-dd-HH}-%i.log">
            <PatternLayout pattern="%d %p [%c] - %m%n"/>
            <Policies>
                <OnStartupTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10 MB"/>
                <TimeBasedTriggeringPolicy />
            </Policies>
        </RollingFile>

        <RollingFile name="perfFileAppender" fileName="perfStats.log" append="true"
                     filePattern="perfStats-%d{yyyy-MM-dd-HH}-%i.log">
            <PatternLayout pattern="%m%n"/>
            <Policies>
                <OnStartupTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10 MB"/>
                <TimeBasedTriggeringPolicy />
            </Policies>
        </RollingFile>

        <CasAppender name="casAudit">
            <AppenderRef ref="auditlogfile" />
        </CasAppender>
        <CasAppender name="casFile">
            <AppenderRef ref="file" />
        </CasAppender>
        <CasAppender name="casConsole">
            <AppenderRef ref="console" />
        </CasAppender>
        <CasAppender name="casPerf">
            <AppenderRef ref="perfFileAppender" />
        </CasAppender>
    </Appenders>
    <Loggers>
        <AsyncLogger name="org.apereo" level="info" additivity="false" includeLocation="true">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.apache.catalina" level="error" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.springframework.cloud.server" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.springframework.cloud.client" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.springframework.cloud.bus" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.springframework" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.springframework.aop" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.springframework.boot" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.springframework.boot.actuate.autoconfigure" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
        </AsyncLogger>
        <AsyncLogger name="org.springframework.webflow" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.springframework.session" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.springframework.amqp" level="off" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.springframework.integration" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.springframework.messaging" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.springframework.web" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.springframework.orm.jpa" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.springframework.scheduling" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.thymeleaf" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.pac4j" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.opensaml" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="net.sf.ehcache" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="com.ryantenney.metrics" level="warn" additivity="false">
            <AppenderRef ref="console"/>
            <AppenderRef ref="file"/>
        </AsyncLogger>
        <AsyncLogger name="net.jradius" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.openid4java" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.ldaptive" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="com.hazelcast" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.springframework.context.annotation" level="off" additivity="false" />
        <AsyncLogger name="org.jasig.spring" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.apache.http" level="warn" additivity="false">
            <AppenderRef ref="casConsole"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="perfStatsLogger" level="info" additivity="false" includeLocation="true">
            <AppenderRef ref="casPerf"/>
        </AsyncLogger>
        <AsyncLogger name="org.apereo.cas.web.flow" level="info" additivity="true" includeLocation="true">
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncLogger name="org.apereo.inspektr.audit.support" level="info" includeLocation="true">
            <AppenderRef ref="casAudit"/>
            <AppenderRef ref="casFile"/>
        </AsyncLogger>
        <AsyncRoot level="error">
            <AppenderRef ref="casConsole"/>
        </AsyncRoot>
    </Loggers>
</Configuration>
