<!--
   Copyright (C) Lightbend Inc. <https://www.lightbend.com>
-->

<!-- The default logback configuration that Play uses if no other configuration is provided -->
<configuration>

    <conversionRule conversionWord="coloredLevel" converterClass="play.api.libs.logback.ColoredLevel" />

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%coloredLevel %logger{15} - %message%n%xException{10}</pattern>
        </encoder>
    </appender>

    <appender name="ASYNCSTDOUT" class="ch.qos.logback.classic.AsyncAppender">
        <!-- increases the default queue size -->
        <queueSize>512</queueSize>
        <!-- don't discard messages -->
        <discardingThreshold>0</discardingThreshold>
        <!-- block when queue is full -->
        <neverBlock>false</neverBlock>
        <appender-ref ref="STDOUT" />
    </appender>

    <logger name="play" level="INFO" />

    <logger name="com.gargoylesoftware.htmlunit.javascript" level="OFF" />

    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>${application.home:-.}/logs/application.log</file>
        <encoder>
            <pattern>%date [%level] from %logger in %thread - %message%n%xException</pattern>
        </encoder>
    </appender>

    <appender name="ASYNCFILE" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="FILE" />
    </appender>

    <root level="INFO">
        <appender-ref ref="ASYNCFILE" />
        <appender-ref ref="ASYNCSTDOUT" />
    </root>

    <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>

</configuration>