2016-08-09 1 views
2

Я настроил Spring Boot для использования Log4j2 в соответствии с руководством this. Я хотел бы отфильтровать все журналы на уровне, установленном в корневом журнале. Вот мой log4j2-spring.xml файл:Уровни журнала Log4j2 не фильтруются для спящего режима и весны в Spring Boot application

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration> 
    <Properties> 
     <Property name="LOG_PATTERN">%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} -s %msg%n</Property> 
    </Properties> 
    <Appenders> 
     <Console name="Console"> 
      <PatternLayout pattern="${LOG_PATTERN}"/> 
     </Console> 
     <File name="File" fileName="app.log"> 
      <PatternLayout pattern="${LOG_PATTERN}"/> 
     </File> 
     <SMTP name="Mail" 
       ... 
     > 
      <ThresholdFilter level="ERROR" onMatch="ACCEPT"/> 
      <PatternLayout pattern="${LOG_PATTERN}"/> 
     </SMTP> 
    </Appenders> 
    <Loggers> 
     <Root level="INFO"> 
      <AppenderRef ref="Console"/> 
      <AppenderRef ref="File"/> 
      <AppenderRef ref="Mail"/> 
     </Root> 
    </Loggers> 
</Configuration> 

Проблема заключается в том, что я все еще вижу выход DEBUG из спящего режима и пружинного каркаса. Мне удалось отфильтровать отдельные журналы, указав полные имена пакетов для некоторых записей, как это:

<Loggers> 
    <Logger name="org.springframework.boot.context.web" level="INFO" /> 
    <Root level="INFO"> 
     <AppenderRef ref="Console"/> 
     <AppenderRef ref="File"/> 
     <AppenderRef ref="Mail"/> 
    </Root> 
</Loggers> 

Однако, конечно, это не представляется возможным сделать это для всех пакетов. Спасибо за любую помощь!

ответ

0

И наконец исправлено. Проблема заключалась в том, что у меня была строка debug=true в application.properties файл и фильтр в log4j2-spring.xml config был просто проигнорирован.