<?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="%d %-5p - [%t:%x] ~ %m (%C{1}:%L)%n"/>
        </layout>
    </appender>

    <appender name="FILE" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="${atlas.log.dir}/${atlas.log.file}"/>
        <param name="Append" value="true"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p - [%t:%x] ~ %m (%C{1}:%L)%n"/>
            <param name="maxFileSize" value="100MB" />
            <param name="maxBackupIndex" value="20" />
        </layout>
    </appender>

    <appender name="AUDIT" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="${atlas.log.dir}/audit.log"/>
        <param name="Append" value="true"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %x %m%n"/>
            <param name="maxFileSize" value="100MB" />
            <param name="maxBackupIndex" value="20" />
        </layout>
    </appender>

    <appender name="METRICS" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="${atlas.log.dir}/metric.log"/>
        <param name="Append" value="true"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %x %m%n"/>
            <param name="maxFileSize" value="100MB" />
        </layout>
    </appender>

    <appender name="FAILED" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="${atlas.log.dir}/failed.log"/>
        <param name="Append" value="true"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %m"/>
            <param name="maxFileSize" value="100MB" />
            <param name="maxBackupIndex" value="20" />
        </layout>
    </appender>

    <!-- Uncomment the following for perf logs -->
    <!--
    <appender name="perf_appender" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="file" value="${atlas.log.dir}/atlas_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.atlas.perf" additivity="false">
        <level value="debug" />
        <appender-ref ref="perf_appender" />
    </logger>
    -->

    <logger name="org.apache.atlas" additivity="false">
        <level value="info"/>
        <appender-ref ref="FILE"/>
    </logger>

    <logger name="org.janusgraph" additivity="false">
        <level value="warn"/>
        <appender-ref ref="FILE"/>
    </logger>

    <logger name="org.springframework" additivity="false">
        <level value="warn"/>
        <appender-ref ref="console"/>
    </logger>

    <logger name="org.eclipse" additivity="false">
        <level value="warn"/>
        <appender-ref ref="console"/>
    </logger>

    <logger name="com.sun.jersey" additivity="false">
        <level value="warn"/>
        <appender-ref ref="console"/>
    </logger>

    <!-- to avoid logs - The configuration log.flush.interval.messages = 1 was supplied but isn't a known config -->
    <logger name="org.apache.kafka.common.config.AbstractConfig" additivity="false">
        <level value="error"/>
        <appender-ref ref="FILE"/>
    </logger>

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

    <logger name="METRICS" additivity="false">
        <level value="debug"/>
        <appender-ref ref="METRICS"/>
    </logger>

    <logger name="FAILED" additivity="false">
        <level value="info"/>
        <appender-ref ref="AUDIT"/>
    </logger>

    <root>
        <priority value="warn"/>
        <appender-ref ref="FILE"/>
    </root>

</log4j:configuration>