<?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>

    <!--
      Disabling some chatty loggers.
    -->
    <logger name="org.apache.commons.beanutils" level="ERROR"/>
    <logger name="org.apache.zookeeper.server" level="ERROR"/>
    <logger name="org.apache.zookeeper" level="ERROR"/>
    <logger name="com.ning" level="WARN"/>
    <logger name="org.apache.hadoop" level="WARN"/>
    <logger name="org.apache.hive" level="WARN"/>
    <logger name="org.quartz.core" level="WARN"/>
    <logger name="org.apache.tephra" level="INFO"/>

    <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
      <encoder>
        <pattern>%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n</pattern>
      </encoder>
    </appender>

    <root level="ERROR">
      <appender-ref ref="Console"/>
    </root>

    <!--
      Uncomment the following section to enable metrics reporting to the given log file.
      Replace the FILE-PATH placeholder with a valid path on the local filesystem.
    -->
    <!--
    <appender name="METRICS" class="ch.qos.logback.core.rolling.RollingFileAppender">
      <file>/FILE-PATH/metrics.log</file>
      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
        <maxHistory>30</maxHistory>
      </rollingPolicy>
      <encoder>
        <pattern>%d{ISO8601} %msg%n</pattern>
      </encoder>
    </appender>
    <logger name="tephra-metrics" level="TRACE" additivity="false">
      <appender-ref ref="METRICS" />
    </logger>
    -->
</configuration>

