<?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 status="OFF">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%p %c{1.} [%t] %X{aKey} %X %m%ex%n" />
        </Console>
        <File name="File"
              fileName="target/gcFreeJsonTemplateLayoutLogging.log"
              bufferedIO="false"
              append="false">
            <JsonTemplateLayout recyclerFactory="threadLocal"/>
        </File>
    </Appenders>
    <Loggers>
        <Root level="trace" includeLocation="false">
            <Property name="prop1">value1</Property>
            <Property name="prop2">value2</Property>
            <appender-ref ref="Console" level="FATAL"/>
            <appender-ref ref="File"/>
        </Root>
    </Loggers>
</Configuration>
