2016-03-31 11 views
0

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?

Antwort

0

Es Config-Datei verwenden sollten, wenn Sie es über diesen Frühling Boot-Eigenschaft definieren:

logging.config= # Location of the logging configuration file. For instance `classpath:logback.xml` for Logback 
+0

Hinzufügen ** logging.config = Classpath: log4j2-spring.xml ** funktioniert nicht. Ein minimales Beispiel finden Sie unter https://github.com/ximanta/springbootwebapp-part2 – user2693135

+0

Die Datei log4j2-spring.xml fehlt im Repository. – luboskrnac

+0

@luboskmac Sorry! Habe es einfach hinzugefügt. – user2693135

Verwandte Themen