2017-07-14 1 views
0

Geschrieben einfache POC zu beweisen und zu testen Spring Boot und log4j2 Kompatibilität. Sobald es erfolgreich ist, werde ich es zur realen Anwendung bewegen.Spring Boot Protokollierung mit Log4j2

Bitte meine POC Quellcode verweisen: https://github.com/Dennyss/SpringBootLog4j2POC

Ich weiß/lesen über Spring-Version und log4j2 Kompatibilität von: How to set up Spring Boot and log4j2 properly?

gefunden und versucht, Empfehlungen hier beschrieben: Spring-Boot logging with log4j2?

Aber noch funktioniert nicht. Das Problem besteht darin, dass sowohl Anwendungsprotokolle als auch Spring-Protokolle nur auf Konsolen gedruckt werden.

Siehe Maven Abhängigkeiten unten (von POC):

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
     <exclusions> 
      <exclusion> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-logging</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-log4j2</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-core</artifactId> 
     <version>2.6.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-api</artifactId> 
     <version>2.6.2</version> 
    </dependency> 
</dependencies> 

Wenn ich Spring logback nicht ausschließen und nicht boot-Starter-log4j2 dann Anwendungsprotokolle drucken, um Anwendungsdatei aber Frühling Protokolle hinzufügen werden überhaupt nicht gedruckt. Ich fühle das Problem irgendwo mit Abhängigkeiten. Schätze jede Hilfe.

Antwort

1

Gemäß der Spring Boot-Dokumentation Logging kann der Speicherort der Protokollierungskonfigurationsdatei mit der logging.config-Eigenschaft angegeben werden. Ich habe festgestellt, dass Ihr Skript "start.sh" -Dlog4j.configurationFile übergibt. Normalerweise würde dies für die direkte Log4J 2-Integration ausreichen, aber Spring Boot verwendet logging.config.

Nach dem dieses Schalt schreibt es in die Protokolldateien:

java -Dlogging.config=/share/LogPOC/log4j2.xml -cp poc.jar:libs/* com.poc.logger.Application 
+0

dies heute versucht, bekam Fehlermeldung zu trösten. „ERROR StatusLogger Keine log4j2 Konfigurationsdatei gefunden Standardkonfiguration verwenden: Anmeldung nur Fehler der Konsole." aber alle arbeiten großartig. Ich sehe App-Logs in application.log, Spring in spring-framework.log und alle anderen in anderen.log. Danke für Ihre Hilfe! – Denys

+0

Laut log4j-Dokumentation erwartet '-Dlog4j.configurationFile', nicht sicher, ob es richtig initialisiert wurde (Fehlermeldung erklärt das gleiche). – Denys

Verwandte Themen