<?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 name="KafkaAppenderTest" status="OFF">
  <Appenders>
    <Kafka name="KafkaAppenderWithLayout" topic="kafka-topic">
      <PatternLayout pattern="[%m]"/>
      <Property name="bootstrap.servers">localhost:9092</Property>
      <Property name="timeout.ms">1000</Property>
    </Kafka>
    <Kafka name="AsyncKafkaAppender" topic="kafka-topic">
      <PatternLayout pattern="%m"/>
      <Property name="bootstrap.servers">localhost:9092</Property>
      <Property name="syncSend">false</Property>
    </Kafka>
    <Kafka name="KafkaAppenderWithKey" topic="kafka-topic" key="key">
      <PatternLayout pattern="%m"/>
      <Property name="timeout.ms">1000</Property>
      <Property name="bootstrap.servers">localhost:9092</Property>
    </Kafka>
    <Kafka name="KafkaAppenderWithKeyLookup" topic="kafka-topic" key="$${date:dd-MM-yyyy}">
      <PatternLayout pattern="%m"/>
      <Property name="timeout.ms">1000</Property>
      <Property name="bootstrap.servers">localhost:9092</Property>
    </Kafka>
    <Kafka name="KafkaAppenderNoEventTimestamp" topic="kafka-topic" key="key" eventTimestamp="false">
      <PatternLayout pattern="%m"/>
      <Property name="timeout.ms">1000</Property>
      <Property name="bootstrap.servers">localhost:9092</Property>
    </Kafka>
  </Appenders>
  <Loggers>
    <Root level="info">
      <AppenderRef ref="KafkaAppenderWithLayout"/>
      <AppenderRef ref="AsyncKafkaAppender"/>
      <AppenderRef ref="KafkaAppenderWithKey"/>
      <AppenderRef ref="KafkaAppenderNoEventTimestamp"/>
    </Root>
  </Loggers>
</Configuration>