como registrar apenas um nível com o log4j2?

Estou usando o log4j2 no meu aplicativo.

O que eu quero é que tudo, até 'debug', vá para o console, tudo, até 'info', vá para myapp.log e SOMENTE 'info', vá para 'myapp-audit.log'.

O motivo é que o INFO consiste principalmente de modificações bem-sucedidas nos dados (por exemplo, 'usuário criado', 'usuário atualizado', 'usuário excluído' e assim por diante). If é efetivamente um log de auditoria de modificações de dados.

Mas não consigo descobrir como fazê-lo.

Como obtenho APENAS 'informações' para fazer logon em 'myapp-audit.log'? Aqui está minha configuração atual ...

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="WARN">
    <appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>

        <File name="LogFile" fileName="myapp.log">
            <PatternLayout
                pattern="%d{yyyy-mm-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </File>

        <File name="AuditFile" fileName="myapp-audit.log">
            <PatternLayout
                pattern="%d{yyyy-mm-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </File>
    </appenders>

    <loggers>
        <root level="debug">
            <appender-ref ref="Console" level="debug" />
            <appender-ref ref="LogFile" level="info" />
            <appender-ref ref="AuditFile" level="info" /> <!-- I want ONLY 'info' here -->
        </root>
    </loggers>
</configuration>

questionAnswers(3)

yourAnswerToTheQuestion