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

  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements. See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership. The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License. You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied. See the License for the
  specific language governing permissions and limitations
  under the License.

-->
<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{dd MMM yyyy HH:mm:ss,SSS} [%X{logSegregationId}] [%t] %-5p %c - %m%n</pattern>
    </encoder>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>ERROR</level>
    </filter>
  </appender>
  <appender name="TEST_LOG_FILE" class="ch.qos.logback.core.FileAppender">
    <!--See also http://logback.qos.ch/manual/appenders.html#RollingFileAppender-->
    <file>target/test.log</file>
    <encoder>
      <pattern>%d{dd MMM yyyy HH:mm:ss,SSS} %X{logSegregationId} [%t] %-5p %c - %m%n</pattern>
    </encoder>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>INFO</level>
    </filter>
  </appender>
  <appender name="TEST_LOG_RESOURCE" class="ch.qos.logback.core.FileAppender">
    <!--See also http://logback.qos.ch/manual/appenders.html#RollingFileAppender-->
    <file>target/logresource.log</file>
    <encoder>
      <pattern>%d{dd MMM yyyy HH:mm:ss,SSS} %X{logSegregationId} [%t] %-5p %c - %m%n</pattern>
    </encoder>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>INFO</level>
    </filter>
  </appender>
  <logger name="org.apache.lens.server.stats.TestLogStatisticsStore$MyLoggableLens" additivity="false" level="INFO">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="TEST_LOG_FILE"/>
  </logger>
  <logger name="org.apache.lens.server.TestLogResource" level="INFO">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="TEST_LOG_RESOURCE"/>
  </logger>
  <logger name="org.apache.lens" additivity="false" level="INFO">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="TEST_LOG_FILE"/>
  </logger>
  <root level="INFO">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="TEST_LOG_FILE"/>
  </root>
</configuration>

