<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
  <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>


  <timestamp key="byDay" datePattern="yyyyMMdd'T'HHmmss"/>
  <springProperty scope="context" name="environment" source="delphi.environment"/>
  <springProperty scope="context" name="app_version" source="app.version"/>

  <!--  JSON Request Logging  -->
  <!--  See: https://github.com/logstash/logstash-logback-encoder/tree/logstash-logback-encoder-6.4#composite-encoderlayout  -->
  <appender name="CONSOLE-JSON" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
      <providers>
        <context/>
        <logLevel/>
        <loggerName/>
        <mdc/>
        <message/>
        <rootStackTraceElement/>
        <threadName/>
        <throwableClassName/>
        <throwableRootCauseClassName/>
        <timestamp>
          <fieldName>datetime</fieldName>
        </timestamp>
        <stackTrace/>
        <!-- Nested providers -->
        <arguments/>
      </providers>
    </encoder>
  </appender>

  <!--  Sentry Appender  -->
  <appender name="SENTRY" class="io.sentry.logback.SentryAppender"/>

  <logger name="org.springframework.web" level="INFO"/>
  <logger name="org.springframework.data.elasticsearch.client.WIRE" level="INFO"/>

  <root level="INFO">
    <appender-ref ref="CONSOLE-JSON"/>
    <appender-ref ref="SENTRY"/>
  </root>
</configuration>
