<?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. -->
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="console" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out" />
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="[%t] %c{1} [%p] %m%n" />
    </layout>
  </appender>

  <root>
    <priority value="info" />
    <appender-ref ref="console" />
  </root>

  <logger name="STARTUP_LOGGER" additivity="false">
    <level value="info" />
    <appender-ref ref="console"/>
  </logger>

  <logger name="org.apache.hadoop">
    <level value="ERROR"/>
  </logger>
  <logger name="org.I0Itec.zkclient">
    <level value="ERROR"/>
  </logger>
  <logger name="org.apache.zookeeper">
    <level value="ERROR"/>
  </logger>
  <logger name="org.apache.samza.system.kafka">
    <level value="ERROR"/>
  </logger>
  <logger name="org.apache.kafka">
    <level value="ERROR"/>
  </logger>
  <logger name="kafka">
    <level value="ERROR"/>
  </logger>
</log4j:configuration>
