Log4j2 Filtrar nível particular no apender

Qual filtro devo usar, para definir um determinado nível para ser logado com o apender? Por exemplo:

Java:

LOGGER.debug("Debug message"); LOGGER.info("Info message"); LOGGER.warn("Warn message"); LOGGER.error("Error message"); LOGGER.fatal("Fatal message"); 

log4j2.xml:

                      

A saída do arquivo é boa, mas no console eu tenho esse resultado:

 [application.Main] [INFO] Info message [application.Main] Info message [application.Main] [WARN] Warn message [application.Main] Warn message [application.Main] [ERROR] Error message [application.Main] Error message [application.Main] [FATAL] Fatal message [application.Main] Fatal message 

mas eu preciso info-stdout-message appender de info-stdout-message para enviar apenas mensagens INFO, enquanto detailed-stdout-message para a saída de todas as INFO do EXEPT. Portanto, a saída do console deve se parecer com:

 [application.Main] Info message [application.Main] [WARN] Warn message [application.Main] [ERROR] Error message [application.Main] [FATAL] Fatal message 

Não é possível descobrir como impedir que os filtros respeitem a inheritance de nível. É possível fazer isso?

Não tenho 100% de certeza de que funcionará, mas experimente:

            

Aqui dois consoladores de console. Um registra todos os níveis de rastreamento, debugging e informações para std_out, os outros logs todos os níveis de avisos, erros e fatais para std_err. Isso é muito útil, por exemplo, dentro do eclipse, já que std_err é exibido em vermelho.

             

Levei muito tempo para descobrir como filtrar um intervalo de LogLevels por meio do arquivo de configuração log4j2.xml. No final isso funcionou para mim:

     

Neste caso, o Log4J registrará todas as mensagens de Level.TRACE para Level.DEBUG, todos os níveis abaixo de Level.DEBUG serão ignorados.

Por favor, verifique todas as possibilidades de filtragem do log4j2 em https://logging.apache.org/log4j/2.0/manual/filters.html

Fragmento de configuração de amostra

 ...   [%d][%p][%c:%L:%M] - %m%n      ... 

Na verdade, a partir de sua pergunta, parece que você não quer dois aplicativos diferentes, mas dois padrões diferentes que estão sendo usados ​​em circunstâncias diferentes. Para isso você deve apenas usar um PatternSelector.