2016-03-29 8 views
1

Ich verwende Log4J 2 in einer Spring-Boot-Anwendung und versuchen, einige grundlegende Protokollierungsoptionen über application.properties zu konfigurieren.Probleme mit Log-Levels in Spring Boot application.properties

Ich habe einen Logger in meiner Controller-Klasse eingerichtet, so.

package guru.springframework.controllers; 
- - - - 
@Controller 
public class IndexController { 
    private final Logger logger = LoggerFactory.getLogger(this.getClass()); 
    @RequestMapping("/") 
    String index(){ 
    logger.debug("This is a debug message"); 
    logger.info("This is an info message"); 
    logger.warn("This is a warn message"); 
    logger.error("This is an error message"); 
    return "index"; 
    } 
} 

In application.properties habe ich die folgenden Eigenschaften.

Spring interne loggigng Nachrichten werden mit INFO-Ebene in der Konsole protokolliert, wenn ich die App starte. Dies wird von der logging.level.org.springframework.web Eigenschaft erwartet. Wenn der Controller jedoch aufgerufen wird, werden nur Nachrichten von info() und niedriger protokolliert. Mit der logging.level.guru.springframework.controllers Eigenschaft, die auf DEBUG gesetzt wird, warum nicht die Nachricht der debug() Methode protokolliert wird. Wenn ich Folgendes zu application.properties hinzufüge.

logging.level.root=ERROR 

Jetzt werden beim Start der Konsole keine Meldungen an die Konsole gesendet (Offensichtlich wurde dieses Mal die Fehlerstufe erkannt). Entsprechend gibt der Controller nur die error() Methodenmeldung aus. Gibt es also eine bestimmte Priorität beim Abrufen von Ebenen aus application.properties?

Gibt es eine Möglichkeit verschiedene Ebenen für ein anderes Paket (sagen wir, den Controller-Paket) unabhängig von der Höhe für logging.level.root angegeben einzurichten und logging.level.org.springframework.web in application.properties.

Ich möchte keine andere externe Konfigurationsdatei verwenden.

+0

Es funktioniert für mich als Backend über SLF4J mit Log4j2 anmelden. Können Sie ein minimales Beispiel teilen, das das Problem aufzeigt? –

+0

@Andy Es ist eine Spring Boot Web App. Sein in: https://github.com/ximanta/springbootwebapp-part2 – user2693135

Antwort

1

Sie verwenden eine alte Version von Spring Boot (1.2.4.RELEASE), die a bug enthält. Es wurde in 1.2.6.RELEASE behoben, aber ich würde empfehlen, auf 1.2.8.RELEASE (wenn Sie mit 1.2.x bleiben müssen) oder, noch besser, auf 1.3.3.RELEASE (die neueste Version im Zeitpunkt des Schreibens). Sie können durch die Aktualisierung der Version von spring-boot-starer-parent aktualisieren, die Sie in Ihrem Projekt pom verwenden:

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.3.3.RELEASE</version> 
    <relativePath/> <!-- lookup parent from repository --> 
</parent> 
+0

Das war das genaue Problem. Vielen Dank. – user2693135

Verwandte Themen