<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration>

<configuration>
  <import class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"/>
  <import class="ch.qos.logback.core.ConsoleAppender"/>

  <if condition='isDefined("logging.appender.file.level")'>
    <then>
      <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>${logging.appender.file.fileName:-npm-groovy-lint.log}</file>
        <append>${logging.appender.file.append:-true}</append>
        <immediateFlush>${logging.appender.file.flush:-true}</immediateFlush>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
          <level>${logging.appender.file.level:-OFF}</level>
        </filter>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
      </appender>
      <root>
        <appender-ref ref="FILE"/>
      </root>
    </then>
  </if>

  <appender name="STDERR" class="ConsoleAppender">
    <target>System.err</target>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>${logging.appender.console.level:-INFO}</level>
    </filter>
    <encoder class="PatternLayoutEncoder">
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%kvp- %msg%n</pattern>
    </encoder>
  </appender>

  <root>
    <appender-ref ref="STDERR"/>
  </root>
</configuration>
