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!