<?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="A1" class="org.apache.log4j.FileAppender">

    <param name="File"   value="target/output/temp.A1" />
    <param name="Append" value="false" />

    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%-5p %c{2} - %m%n"/>
    </layout>
  </appender>

  <appender name="A2" class="org.apache.log4j.FileAppender">
    <param name="File" value="target/output/temp.A2" />
    <param name="Append" value="false" />
    <layout class="org.apache.log4j.TTCCLayout">
      <param name="DateFormat" value="ISO8601" />
    </layout>
  </appender>

  <logger name="org.apache.log4j.xml">
    <level value="trace" />
    <appender-ref ref="A1" />
  </logger>

  <root>
    <priority value ="trace" />
    <appender-ref ref="A1" />
    <appender-ref ref="A2" />
  </root>

</log4j:configuration>
