Example log4j2.xml Configuration

<Configuration status="WARN" name="Logging" monitorInterval="300">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout>
                <pattern>
                    %d{yyyy-MM-dd HH:mm:ss.SSS} | %-5level | %X{operation} | %X{channel}:%X{correlationId} | %X{sourceSystem}:%X{userAgent} | %t | %logger{36} - %msg%n
                </pattern>
            </PatternLayout>
        </Console>
        <Select>
            <EnvironmentArbiter propertyName="OI_CONSOLE_ONLY" propertyValue="true"/>
            <DefaultArbiter>
                <RollingFile name="FileLogger"
                             fileName="logs/siebel-openint.log"
                             filePattern="logs/siebel-openint-%d{yyyy-MM-dd}-%i.log">
                    <PatternLayout>
                        <pattern>
                            %d{yyyy-MM-dd HH:mm:ss.SSS} | %-5level | %X{operation} | %X{channel}:%X{correlationId} | %X{sourceSystem}:%X{userAgent} | %t | %logger{36} - %msg%n
                        </pattern>
                    </PatternLayout>
                    <Policies>
                        <SizeBasedTriggeringPolicy size="100 MB"/>
                    </Policies>
                    <DefaultRolloverStrategy fileIndex="nomax" />
                </RollingFile>
                <RollingFile name="DLQFileLogger"
                             fileName="logs/siebel-openint-dlq.log"
                             filePattern="logs/siebel-openint-dlq-%d{yyyy-MM-dd}-%i.log">
                    <PatternLayout>
                        <pattern>
                            %d{yyyy-MM-dd HH:mm:ss.SSS} | %-5level | %X{operation} | %X{channel}:%X{correlationId} | %X{sourceSystem}:%X{userAgent} | %t | %logger{36} - %msg%n
                        </pattern>
                    </PatternLayout>
                    <Policies>
                        <SizeBasedTriggeringPolicy size="100 MB"/>
                    </Policies>
                    <DefaultRolloverStrategy fileIndex="nomax" />
                </RollingFile>
            </DefaultArbiter>
        </Select>
    </Appenders>
    <Loggers>
        <Select>
            <EnvironmentArbiter propertyName="OI_CONSOLE_ONLY" propertyValue="true">
                <Logger name="DLQLogger" level="${env:DLQ_LOG_LEVEL:-ERROR}" additivity="false">
                    <AppenderRef ref="Console" level="${env:DLQ_LOG_LEVEL:-ERROR}"/>
                </Logger>
                <Root level="${env:OI_LOG_LEVEL:-ERROR}" additivity="false">
                    <AppenderRef ref="Console" level="${env:OI_LOG_LEVEL:-ERROR}"/>
                </Root>
            </EnvironmentArbiter>
            <DefaultArbiter>
                <Logger name="DLQLogger" level="${env:DLQ_LOG_LEVEL:-ERROR}" additivity="false">
                    <AppenderRef ref="DLQFileLogger"/>
                </Logger>
                <Root level="${env:OI_LOG_LEVEL:-ERROR}" additivity="false">
                    <AppenderRef ref="FileLogger"/>
                    <AppenderRef ref="Console" level="${env:OI_LOG_LEVEL:-ERROR}"/>
                </Root>
            </DefaultArbiter>
        </Select>
    </Loggers>
</Configuration>