<?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.
 *
 -->
<Configuration>
    <Appenders>
        <File name="file" fileName="fortress.log" append="true" maxFileSize="10MB" maxBackupIndex="10">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:sss} %-5p %c{1}:%L - %m%n"/>
        </File>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:sss} %-5p %c{1}:%L - %m%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="org.apache.directory.fortress.core" level="info"/>
        <Root level="info">
            <AppenderRef ref="console"/>
        </Root>
    </Loggers>
</Configuration>

<!--    <appender name="console" class="org.apache.log4j.ConsoleAppender">-->
<!--        <layout class="org.apache.log4j.PatternLayout">-->
<!--            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:sss} %-5p %c{1}:%L - %m%n"/>-->
<!--        </layout>-->
<!--    </appender>-->

<!--    <appender name="file" class="org.apache.log4j.RollingFileAppender">-->
<!--        <param name="append" value="true"/>-->
<!--        <param name="maxFileSize" value="10MB"/>-->
<!--        <param name="maxBackupIndex" value="10"/>-->
<!--        <param name="file" value="fortress.log"/>-->
<!--        <layout class="org.apache.log4j.PatternLayout">-->
<!--            <param name="ConversionPattern"-->
<!--                   value="%d{yyyy-MM-dd HH:mm:sss} %-5p %c{1}:%L - %m%n"/>-->
<!--        </layout>-->
<!--    </appender>-->

<!--    <category name="org.apache.directory.fortress.core" class="org.apache.log4j.Logger" additivity="false">-->
<!--        <priority value="INFO" class="org.apache.log4j.Level"/>-->
<!--        <appender-ref ref="console"/>-->
<!--    </category>-->

    <!--category name="org.apache.directory.api" class="org.apache.log4j.Logger" additivity="false">
        <priority value="DEBUG" class="org.apache.log4j.Level"/>
        <appender-ref ref="console"/>
    </category-->

<!--    <root>-->
<!--        <priority value="INFO" class="org.apache.log4j.Level"/>-->
<!--        <appender-ref ref="console"/>-->
<!--        &lt;!&ndash;<appender-ref ref="file"/>&ndash;&gt;-->
<!--    </root>-->

