<?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="DEBUG" monitorInterval="0">
  <Properties>
    <Property name="spring.application.name">sampleapp</Property>
  </Properties>
  <Appenders>
    <!--<Flume name="flume" ignoreExceptions="false" type="Embedded" compress="false">
      <Property name="channel.type">memory</Property>
      <Property name="channel.capacity">100000</Property>
      <Property name="channel.transactionCapacity">5000</Property>
      <Property name="sinks">agent1</Property>
      <Property name="agent1.type">avro</Property>
      <Property name="agent1.hostname">flume</Property>
      <Property name="agent1.port">5050</Property>
      <Property name="agent1.batch-size">1000</Property>
      <Property name="processor.type">default</Property>
      <JsonLayout properties="true" compact="true" eventEol="true">
        <KeyValuePair key="containerId" value="\${docker:containerId}"/>
        <KeyValuePair key="containerName" value="\${docker:containerName}"/>
        <KeyValuePair key="imageName" value="\${docker:imageName}"/>
        <KeyValuePair key="application" value="\$\${lower:\${spring:spring.application.name}}"/>
      </JsonLayout>
    </Flume>
    <Flume name="avro" ignoreExceptions="false" batchSize="1" compress="false">
      <Agent host="flume" port="5050"/>
      <JsonLayout properties="true" compact="true" eventEol="true" stackTraceAsString="true">
        <KeyValuePair key="containerId" value="\${docker:containerId}"/>
        <KeyValuePair key="containerName" value="\${docker:containerName}"/>
        <KeyValuePair key="imageName" value="\${docker:imageName}"/>
        <KeyValuePair key="application" value="\$\${lower:\${spring:spring.application.name}}"/>
      </JsonLayout>
    </Flume>
    <Flume name="avroSyslog" ignoreExceptions="false" batchSize="100" compress="false">
      <Agent host="flume" port="5050"/>
      <RFC5424Layout enterpriseNumber="18060" includeMDC="true" mdcId="RequestContext" appName="Sample"
                     mdcPrefix="">
        <LoggerFields>
          <KeyValuePair key="containerId" value="\${docker:containerId}"/>
          <KeyValuePair key="containerName" value="\${docker:containerName}"/>
          <KeyValuePair key="imageName" value="\${docker:imageName}"/>
          <KeyValuePair key="application" value="\$\${lower:\${spring:spring.application.name}}"/>
        </LoggerFields>
      </RFC5424Layout>
    </Flume>
    <Kafka name="Kafka" topic="log-test" syncSend="false">
      <JsonLayout properties="true" compact="true" eventEol="true">
        <KeyValuePair key="containerId" value="\${docker:containerId}"/>
        <KeyValuePair key="containerName" value="\${docker:containerName}"/>
        <KeyValuePair key="imageName" value="\${docker:imageName}"/>
        <KeyValuePair key="application" value="\$\${lower:\${spring:spring.application.name}}"/>
      </JsonLayout>
      <Property name="bootstrap.servers">host.docker.internal:9092</Property>
    </Kafka>
    <Socket name="fluent-bit" host="fluent-bit" port="24221">
      <JsonLayout properties="true" compact="true" eventEol="true" stackTraceAsString="true">
        <KeyValuePair key="containerId" value="\${docker:containerId}"/>
        <KeyValuePair key="containerName" value="\${docker:containerName}"/>
        <KeyValuePair key="imageName" value="\${docker:imageName}"/>
        <KeyValuePair key="application" value="\$\${lower:\${spring:spring.application.name}}"/>
      </JsonLayout>
    </Socket>
    <RollingFile name="RollingFile" fileName="/var/log/sampleapp/app.log"
                 filePattern="/var/log/sampleapp/archive/app.log.%i">
      <JsonLayout properties="true" compact="true" eventEol="true" stackTraceAsString="true">
        <KeyValuePair key="containerId" value="\${docker:containerId}"/>
        <KeyValuePair key="containerName" value="\${docker:containerName}"/>
        <KeyValuePair key="imageName" value="\${docker:imageName}"/>
        <KeyValuePair key="application" value="\$\${lower:\${spring:spring.application.name}}"/>
      </JsonLayout>
      <SizeBasedTriggeringPolicy size="10MB" />
      <DefaultRolloverStrategy max="5"/>
    </RollingFile>
    <RollingFile name="RollingSyslog" fileName="/var/log/sampleapp/syslog.log"
                 filePattern="/var/log/sampleapp/archive/syslog.log.%i">
      <RFC5424Layout enterpriseNumber="18060" includeMDC="true" mdcId="RequestContext" appName="Sample"
                     mdcPrefix="">
        <LoggerFields>
          <KeyValuePair key="containerId" value="\${docker:containerId}"/>
          <KeyValuePair key="containerName" value="\${docker:containerName}"/>
          <KeyValuePair key="imageName" value="\${docker:imageName}"/>
          <KeyValuePair key="application" value="\$\${lower:\${spring:spring.application.name}}"/>
        </LoggerFields>
      </RFC5424Layout>
      <SizeBasedTriggeringPolicy size="10MB" />
      <DefaultRolloverStrategy max="5"/>
    </RollingFile>-->
    <Socket name="Elastic"
            host="\${sys:logstash.search.host}"
            port="12222"
            protocol="tcp"
            bufferedIo="true">
      <JsonTemplateLayout eventTemplateUri="classpath:EnhancedGelf.json" nullEventDelimiterEnabled="true">
        <EventTemplateAdditionalFields>
          <EventTemplateAdditionalField key="containerId" value="\${docker:containerId:-}"/>
          <EventTemplateAdditionalField key="application" value="\${lower:${spring:spring.application.name:-spring}}"/>
          <EventTemplateAdditionalField key="kubernetes.serviceAccountName" value="\${k8s:accountName:-}"/>
          <EventTemplateAdditionalField key="kubernetes.containerId" value="\${k8s:containerId:-}"/>
          <EventTemplateAdditionalField key="kubernetes.containerName" value="\${k8s:containerName:-}"/>
          <EventTemplateAdditionalField key="kubernetes.host" value="\${k8s:host:-}"/>
          <EventTemplateAdditionalField key="kubernetes.labels.app" value="\${k8s:labels.app:-}"/>
          <EventTemplateAdditionalField key="kubernetes.labels.pod-template-hash" value="\${k8s:labels.podTemplateHash:-}"/>
          <EventTemplateAdditionalField key="kubernetes.master_url" value="\${k8s:masterUrl:-}"/>
          <EventTemplateAdditionalField key="kubernetes.namespaceId" value="\${k8s:namespaceId:-}"/>
          <EventTemplateAdditionalField key="kubernetes.namespaceName" value="\${k8s:namespaceName:-}"/>
          <EventTemplateAdditionalField key="kubernetes.podID" value="\${k8s:podId:-}"/>
          <EventTemplateAdditionalField key="kubernetes.podIP" value="\${k8s:podIp:-}"/>
          <EventTemplateAdditionalField key="kubernetes.podName" value="\${k8s:podName:-}"/>
          <EventTemplateAdditionalField key="kubernetes.imageId" value="\${k8s:imageId:-}"/>
          <EventTemplateAdditionalField key="kubernetes.imageName" value="\${k8s:imageName:-}"/>
        </EventTemplateAdditionalFields>
      </JsonTemplateLayout>
    </Socket>
    <!--<Socket name="Elastic" host="\${sys:logstash.search.host:-localhost}" port="12222" protocol="tcp" bufferedIo="true" ignoreExceptions="false">
      <GelfLayout includeStackTrace="true" host="${hostName}" includeThreadContext="true" includeNullDelimiter="true"
                  compressionType="OFF">
        <ThreadContextIncludes>requestId,sessionId,loginId,userId,ipAddress,corpAcctNumber,callingHost,ohBehalfOf,onBehalfOfAccount</ThreadContextIncludes>
        <MessagePattern>[%t] %-5p %X{requestId, sessionId, loginId, userId, ipAddress, corpAcctNumber} %C{1.}.%M:%L - %m%n</MessagePattern>
        <KeyValuePair key="docker.containerId" value="\${docker:containerId:-}"/>
        <KeyValuePair key="application" value="$\${lower:\${spring:spring.application.name}}"/>
        <KeyValuePair key="kubernetes.serviceAccountName" value="\${k8s:accountName:-}"/>
        <KeyValuePair key="kubernetes.containerId" value="\${k8s:containerId:-}"/>
        <KeyValuePair key="kubernetes.containerName" value="\${k8s:containerName:-}"/>
        <KeyValuePair key="kubernetes.host" value="\${k8s:host:-}"/>
        <KeyValuePair key="kubernetes.labels.app" value="\${k8s:labels.app:-}"/>
        <KeyValuePair key="kubernetes.labels.pod-template-hash" value="\${k8s:labels.podTemplateHash:-}"/>
        <KeyValuePair key="kubernetes.master_url" value="\${k8s:masterUrl:-}"/>
        <KeyValuePair key="kubernetes.namespaceId" value="\${k8s:namespaceId:-}"/>
        <KeyValuePair key="kubernetes.namespaceName" value="\${k8s:namespaceName:-}"/>
        <KeyValuePair key="kubernetes.podID" value="\${k8s:podId:-}"/>
        <KeyValuePair key="kubernetes.podIP" value="\${k8s:podIp:-}"/>
        <KeyValuePair key="kubernetes.podName" value="\${k8s:podName:-}"/>
        <KeyValuePair key="kubernetes.imageId" value="\${k8s:imageId:-}"/>
        <KeyValuePair key="kubernetes.imageName" value="\${k8s:imageName:-}"/>
      </GelfLayout>
    </Socket>-->
    <Console name="Console" target="SYSTEM_OUT">
      <RFC5424Layout enterpriseNumber="50177" includeMDC="true" mdcId="RequestContext" appName="SalesforceGateway"
                     mdcPrefix="" newLine="true" mdcIncludes="requestId,sessionId,loginId,userId,ipAddress,corpAcctNumber"/>
    </Console>
    <Failover name="log4j" primary="Elastic">
      <Failovers>
        <AppenderRef ref="Console"/>
      </Failovers>
    </Failover>
  </Appenders>

  <Loggers>
    <Logger name="org.apache.kafka" level="warn" additivity="false">
      <AppenderRef ref="log4j"/>
    </Logger>
    <Logger name="org.apache.flume" level="warn" additivity="false">
      <AppenderRef ref="log4j"/>
    </Logger>
    <Logger name="org.apache.avro" level="warn" additivity="false">
      <AppenderRef ref="log4j"/>
    </Logger>
    <Root level="DEBUG">
      <AppenderRef ref="log4j"/>
    </Root>
  </Loggers>
</Configuration>