<?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 PUBLIC "-//APACHE//DTD LOG4J 1.2//EN"
    "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">

<!--
    Default log4j configuration for Ignite.
-->
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
    <!--
        Logs System.out messages to console.

        Note, this appender is disabled by default.
        To enable, uncomment the section below and also CONSOLE appender in the <root> element.
    -->
    <!--
    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out"/>

        <param name="Threshold" value="DEBUG"/>

        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{ABSOLUTE}][%-5p][%t][%c{1}] %m%n"/>
        </layout>

        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="levelMin" value="DEBUG"/>
            <param name="levelMax" value="WARN"/>
        </filter>
    </appender>
    -->

    <!--
        Logs all ERROR messages to console.
    -->
    <appender name="CONSOLE_ERR" class="org.apache.log4j.ConsoleAppender">
        <!-- Log to STDERR. -->
        <param name="Target" value="System.err"/>

        <!-- Log from ERROR and higher (change to WARN if needed). -->
        <param name="Threshold" value="ERROR"/>

        <!-- The default pattern: Date Priority [Category] Message\n -->
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{ABSOLUTE}][%-5p][%t][%c{1}] %m%n"/>
        </layout>
    </appender>

    <!--
        Logs all output to specified file.
        By default, the logging goes to IGNITE_HOME/work/log folder
    -->
    <appender name="FILE" class="org.apache.ignite.logger.log4j.Log4jRollingFileAppender">
        <param name="Threshold" value="DEBUG"/>
        <param name="File" value="${IGNITE_HOME}/work/log/ignite.log"/>
        <param name="Append" value="true"/>
        <param name="MaxFileSize" value="10MB"/>
        <param name="MaxBackupIndex" value="10"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{ABSOLUTE}][%-5p][%t][%c{1}] %m%n"/>
        </layout>
    </appender>

    <!--
    <category name="org.apache.ignite">
        <level value="DEBUG"/>
    </category>
    -->

    <!--
        Uncomment to disable courtesy notices, such as SPI configuration
        consistency warnings.
    -->
    <!--
    <category name="org.apache.ignite.CourtesyConfigNotice">
        <level value="OFF"/>
    </category>
    -->

    <category name="org.springframework">
        <level value="WARN"/>
    </category>

    <category name="org.eclipse.jetty">
        <level value="WARN"/>
    </category>

    <!--
        Avoid warnings about failed bind attempt when multiple nodes running on the same host.
    -->
    <category name="org.eclipse.jetty.util.log">
        <level value="ERROR"/>
    </category>

    <category name="org.eclipse.jetty.util.component">
        <level value="ERROR"/>
    </category>

    <category name="com.amazonaws">
        <level value="WARN"/>
    </category>

    <!-- Default settings. -->
    <root>
        <!-- Print out all info by default. -->
        <level value="INFO"/>

        <!-- Uncomment to enable logging to console. -->
        <!--
        <appender-ref ref="CONSOLE"/>
        -->

        <appender-ref ref="CONSOLE_ERR"/>
        <appender-ref ref="FILE"/>
    </root>
</log4j:configuration>
