Spring-boot-starter-securityの一部のモジュールがlog4jと競合していると思いますが、どのモジュールかわかりません。
私のgradle依存は次のとおりです:
compile("org.springframework.boot:spring-boot-starter-thymeleaf")
compile("org.springframework.boot:spring-boot-starter-security"){
exclude module: "spring-boot-starter-logging"
}
compile "org.Apache.logging.log4j:log4j-api"
compile "org.Apache.logging.log4j:log4j-core"
compile "org.Apache.logging.log4j:log4j-slf4j-impl"
compile('org.Apache.poi:poi:3.10.1')
compile('org.Apache.poi:poi-ooxml:3.10.1')
testCompile("junit:junit")
わかった
compile("org.springframework.boot:spring-boot-starter-security"){
exclude module: "spring-boot-starter-logging"
exclude module: "logback-classic"
}
compile("org.springframework.boot:spring-boot-starter-thymeleaf"){
exclude module: "logback-classic"
}
Mavenの同じソリューション:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>1.5.1.RELEASE</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>
IDEA "依存関係の表示"またはmvn dependency:tree -Dverbose
すべてのlogback-classic jarファイルを検索して除外します。
私にとって、この問題はmaven-surefire-pluginの実行中にのみ発生しました。どういうわけか、プロジェクトの依存関係に追加されていない場合でも、Logbackはクラスパス上にあります。私はそのような修正を追加しました:
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<systemPropertyVariables>
<org.springframework.boot.logging.LoggingSystem>
org.springframework.boot.logging.log4j2.Log4J2LoggingSystem
</org.springframework.boot.logging.LoggingSystem>
</systemPropertyVariables>
</configuration>
</plugin>
あなたも使うことができます
mvn clean install -Dorg.springframework.boot.logging.LoggingSystem=org.springframework.boot.logging.log4j2.Log4J2LoggingSystem