LOG4J2: registradores múltiples, anexores múltiples, en diferentes niveles de registro

Lo que intento hacer es bastante sencillo:

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

    <File name = "hibernateFile" fileName = "${artifactId}/logs/hibernate.log"> 
        <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </File>

     <File name = "springFile" fileName = "${artifactId}/logs/spring.log"> 
        <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </File>

    <File name = "rootFile" fileName = "${artifactId}/logs/root.log"> 
        <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </File>        

  </Appenders>
  <Loggers>
    <Root level="trace">
      <AppenderRef ref="Console"/>
      <AppenderRef ref="rootFile"/>
    </Root>

    <Logger name ="org.springframework" level = "debug"> 
        <AppenderRef ref = "Console" level = "info"/>
        <AppenderRef ref = "springFile" level = "debug"/>
    </Logger>

     <Logger name ="org.hibernate" level = "debug"> 
        <AppenderRef ref = "Console" level ="info"/>
        <AppenderRef ref = "hibernateFile" level = "debug"/>
    </Logger>

  </Loggers>
</Configuration>

Solo quiero que se muestren mensajes importantes en el apéndice de mi consola, mientras quiero que los mensajes detallados se enruten a los apéndices de archivo.

Sin embargo, no quiero filtrar el apéndice en sí, ya que es posible que desee enrutar algunos mensajes de depuración o rastreo allí (por ejemplo, cuando estoy en desarrollo).

losPreguntas frecuentes de Apache sugiere que solo puedo filtrar por nivel de registro en elAppenderRef, pero he intentado esto, como se describe en el xml anterior, y aún enruta los mensajes de nivel DEBUG a la consola.

También he intentado agregar un ThresholdFilter alAppenderRef, pero eso tampoco lo filtra.

 <Logger name ="org.hibernate" level = "debug"> 
    <AppenderRef ref = "Console">
         <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
    </AppenderRef>
    <AppenderRef ref = "hibernateFile" level = "debug"/>
</Logger>

Respuestas a la pregunta(1)

Su respuesta a la pregunta