Ich versuche, eine Log4j2 XML-Konfiguration als JVM-Parameter an das Spring-Boot-Plugin übergeben, aber aus irgendeinem Grund Spring ignoriert es und verwendet seine Standard-Log4j2-Konfigurationsdatei. Ich konnte bestätigen, dass die Umgebungsvariable zur Laufzeit vorhanden ist. Unten ist mein Setup. pom.xml:Spring Logging ignoriert log4j2 Konfigurationsdatei übergeben als jvm Argument
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.falcon</groupId>
<artifactId>spring-boot-sample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>spring-boot-sample</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.8.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</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.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<jvmArguments>-Dlog4j.configurationFile="/Users/anedumar/Work/STS/spring-boot-sample/src/test/resources/log4j2-test.xml"</jvmArguments>
</configuration>
</plugin>
</plugins>
</build>
</project>
und mein log4j2-test.xml ist:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="-------->%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
Wenn ich die Anwendung debuggen, ich, dass der Frühling sehe verwendet eine eigene XML innerhalb wie unten verpackt. Wie übergebe ich den Konfigurationsspeicherort als Umgebungsvariable und bekomme es zum Funktionieren?
Können Sie Ihre JVM-Befehlszeilenparameter posten? – PaulNUK
@PaulNUK Die JVM-Argumente werden in der angegebenen pom.xml angezeigt ... ' -Dlog4j.configurationFile ="/Benutzer/Anedumar/Work/STS/Spring-Boot-Beispiel/src/test/resources/log4j2- test.xml " jvmArguments>' –
glytching