2016-08-09 211 views
2

Ich habe Spring Boot Log4j2 nach this Handbuch manuell konfiguriert konfiguriert. Ich möchte alle Protokolle nach dem im Root-Logger festgelegten Level filtern. Hier ist meine log4j2-spring.xml Datei:Log4j2 Protokollebenen werden nicht für Ruhezustand und Spring in Spring Boot-Anwendung

<?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> 

Das Problem ist, dass ich immer noch DEBUG Ausgabe von Hibernate und Spring Framework sehen. Ich schaffte es einzelne Protokolle zu filtern, indem Sie für einige Einträge wie diese vollständige Paketnamen spezifizieren:

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

aber natürlich ist es nicht möglich ist, es zu tun für alle Pakete. Danke für jede Hilfe!

Antwort

0

Endlich behoben. Das Problem war, dass ich eine Zeile debug=true in application.properties Datei hatte und der Filter in log4j2-spring.xml Config wurde einfach ignoriert.