<?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/" debug="false">

    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <param name="target" value="System.err" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ISO8601} %-5p [%t] %c{2}: %m%n" />
        </layout>
    </appender>

    <!--
    <appender name="ranger_perf_appender" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="file" value="./ranger_admin_perf.log" />
        <param name="datePattern" value="'.'yyyy-MM-dd" />
        <param name="append" value="true" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %m%n" />
        </layout>
    </appender>

    <logger name="org.apache.ranger.perf.policyengine" additivity="false">
        <level value="debug" />
        <appender-ref ref="ranger_perf_appender" />
    </logger>

    <logger name="org.apache.ranger.perf.policy" additivity="false">
        <level value="debug" />
        <appender-ref ref="ranger_perf_appender" />
    </logger>

    <logger name="org.apache.ranger.perf.policyitem" additivity="false">
        <level value="debug" />
        <appender-ref ref="ranger_perf_appender" />
    </logger>

    <logger name="org.apache.ranger.perf.contextenricher" additivity="false">
        <level value="debug" />
        <appender-ref ref="ranger_perf_appender" />
    </logger>

    <logger name="org.apache.ranger.perf.policycondition" additivity="false">
        <level value="debug" />
        <appender-ref ref="ranger_perf_appender" />
    </logger>

    <logger name="org.apache.ranger.perf.db" additivity="false">
        <level value="debug" />
        <appender-ref ref="ranger_perf_appender" />
    </logger>

    <logger name="org.apache.ranger.perf.rest.ServiceREST" additivity="false">
        <level value="debug" />
        <appender-ref ref="ranger_perf_appender" />
    </logger>
    -->

    <root>
        <level value="warn" />
        <appender-ref ref="console" />
    </root>

</log4j:configuration>
