In einer Spring Boot Web App habe ich die folgenden Protokollierungseigenschaften in application.properties.Spring Boot Logging-Eigenschaften vs Log4J 2 Eigenschaften
logging.level.guru.springframework.controllers=DEBUG
logging.level.org.springframework.web=DEBUG
logging.file=logs/spring-boot-logging.log
Dinge funktionieren - DEBUG-Nachrichten sowohl internen Frühlings-Boot und die Anwendung auf logs/Feder-boot-logging.log angemeldet wird. Aber selbst wenn ich log4j2-spring.xml mit verschiedenen Protokollierungsebenen hinzufüge, werden die Ebenen von application.properties immer noch ausgewählt.
Mein log4j2-spring.xml ist dies:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="60">
<Properties>
<Property name="log-path">applogs</Property>
</Properties>
<Appenders>
<Console name="Console-Appender" target="SYSTEM_OUT">
<PatternLayout>
<pattern>
[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
</pattern>>
</PatternLayout>
</Console>
<File name="File-Appender" fileName="${log-path}/app_log.log" >
<PatternLayout>
<pattern>
[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
</pattern>
</PatternLayout>
</File>
</Appenders>
<Loggers>
<Logger name="org.springframework.web" level="info">
<AppenderRef ref="File-Appender"/>
</Logger>
<Logger name="guru.springframework.controllers" level="info">
<AppenderRef ref="File-Appender"/>
</Logger>
<Root level="info">
<AppenderRef ref="Console-Appender"/>
</Root>
</Loggers>
</Configuration>
Mit diesen Einstellungen debug (Defined in application.properties) Nachrichten werden an applogs/app_log.log (definiert in log4j2-spring.xml) gesendet
Beim Auskommentieren von logging.level. * In den Anwendungseigenschaften werden die Protokollstufen (info) in log4j2-spring.xml verwendet. Ich nehme an, dass die Eigenschaften von application.properties standardmäßig Vorrang vor log4j2-spring.xml haben. Gibt es eine Möglichkeit, Spring Boot so zu konfigurieren, dass die Eigenschaften log4j2-spring.xml anstelle von application.properties verwendet werden. Wenn application.properties eine höhere Priorität hat, warum wird dann der Dateiapplikator log4j2-spring.xml anstelle des in logging.file verwendet?
Hinzufügen ** logging.config = Classpath: log4j2-spring.xml ** funktioniert nicht. Ein minimales Beispiel finden Sie unter https://github.com/ximanta/springbootwebapp-part2 – user2693135
Die Datei log4j2-spring.xml fehlt im Repository. – luboskrnac
@luboskmac Sorry! Habe es einfach hinzugefügt. – user2693135