<?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{ISO8601}][%-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{ISO8601}][%-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{ISO8601}][%-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>
