Tampaknya Springboot mengonfigurasi dirinya sendiri untuk menggunakan Logback dengan Tomcat. Saya ingin menonaktifkan ini dan menggunakan yang saya sediakan di classpath saya.
Pesan kesalahan di bawah ini.
LoggerFactory bukan Logback LoggerContext, tetapi Logback ada di classpath. Hapus Logback atau implementasi yang bersaing (kelas org.slf4j.impl.SimpleLoggerFactory) Objek kelas [org.slf4j.impl.SimpleLoggerFactory] harus berupa turunan dari kelas ch.qos.logback.classic.LoggerContext
<?xml version="1.0" encoding="UTF-8"?>
<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>
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>1.0.1.RELEASE</version>
</parent>
<groupId>com.fe</groupId>
<artifactId>cloudapp</artifactId>
<version>1.0.0</version>
<name>Withinet-PaaS</name>
<description>Develop your web applications in on our infrastructure and we will worry about administration and scalability of your app.</description>
<properties>
<java.version>1.7</java.version>
<guava.version>16.0.1</guava.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>com.withinet.cloudapp</groupId>
<artifactId>slave</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-core</artifactId>
<version>6.15.0</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.0.Final</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.4</version>
</dependency>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Hibernate validator -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator-annotation-processor</artifactId>
<version>4.1.0.Final</version>
</dependency>
<!-- Guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<!-- Java EE -->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<!-- Search -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>4.8.0</version>
</dependency>
<!-- Security
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Spring Boot Maven -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.withinet.cloud.Application</mainClass>
<layout>JAR</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
spring-boot
FOO
sumber
sumber
java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
.Untuk menambahkan solusi yang lebih baik dan lebih umum di Gradle (semua instance akan dikecualikan):
Dari https://docs.gradle.org/current/userguide/dependency_management.html
sumber
spring-boot-starter-logging
Untuk menambahkan solusi dalam gradle.
sumber
Saya menemukan bahwa mengecualikan
spring-boot-starter-logging
modul penuh tidak diperlukan. Semua yang diperlukan adalah mengecualikanorg.slf4j:slf4j-log4j12
modul.Menambahkan ini ke file build Gradle akan menyelesaikan masalah:
Lihat jawaban StackOverflow lainnya ini untuk lebih jelasnya.
sumber
Saya suka ini untuk menyelesaikan masalah saya
sumber
Untuk gradle,
Anda dapat melihat solusi ini di: http://www.idanfridman.com/how-to-exclude-libraries-from-dependcies-using-gradle/
Hanya perlu menambahkan
exclude
diconfigurations
:sumber
Temukan spring-boot-starter-test di pom.xml Anda dan modifikasi sebagai berikut:
Itu memperbaiki kesalahan seperti:
sumber
Mengikuti berhasil untuk saya
sumber
Mungkin membantu jika Anda mengatakan apa sebenarnya logger pilihan Anda, dan apa yang Anda lakukan untuk mencoba dan menginstalnya. Bagaimanapun, Spring Boot mencoba bekerja dengan apa pun yang ada di classpath, jadi jika Anda tidak ingin logback, lepaskan dari classpath. Ada instruksi untuk log4j di dokumen , tetapi hal yang sama akan berlaku untuk sistem logging lain yang didukung (apapun slf4j, log4j atau java util).
sumber
Saya menyelesaikan masalah saya melalui ini di bawah:
sumber
Ini berhasil bagi saya dengan baik
Tapi itu tidak akan berhasil untuk pengguna maven . Semua dependensi saya ada di libs.gradle dan saya tidak menginginkannya di file lain. Jadi ini masalah diselesaikan dengan menambahkan
exclude module : 'spring-boot-starter-logging
dispring-boot-starter-data-jpa
,spring-boot-starter-test
dan di hampir segala sesuatu dengan kata booting.MEMPERBARUI
Proyek baru saya membutuhkan pembaruan, ternyata
spring-boot-starter-test
1.5 dan yang lebih lama tidak memilikinyaspring-boot-starter-logging
. 2.0 memilikinyasumber
Dalam kasus saya, itu hanya diperlukan untuk mengecualikan
spring-boot-starter-logging
artefak darispring-boot-starter-security
satu.Ini ada dalam spring boot 2.2.6. Proyek RELEASE yang baru dibuat termasuk dependensi berikut:
Saya mengetahuinya dengan berlari
mvn dependency:tree
dan mencarich.qos.logback
.Sepatu bot musim semi terkait
<dependencies>
dalampom.xml
penampilanku seperti ini:sumber
Tambahkan ini di build.gradle Anda
sumber
Jika kesalahan ini terjadi di SpringBoot saat Anda mencoba menggunakan log4j2, lakukan langkah-langkah berikut:
Kesalahan ini terjadi karena logback menimpa perubahan log4j2. SO jika Anda ingin menggunakan log4j2 maka Anda harus menghapus library logback dan dependensi.
Semoga ini bisa membantu seseorang.
sumber
Cara yang benar untuk mengecualikan logging default, dan mengkonfigurasi log4j untuk logging.
Lihat Musim Semi Logging - Cara .
sumber
Untuk menambahkan pengecualian untuk logback dari Netbeans IDE
Klik kanan pada toples dan pilih Exclude Dependency seperti yang ditunjukkan di bawah ini. Ini mengecualikan tabung logback di pom.xml seperti ini;
sumber
Dalam kasus saya di bawah pengecualian berfungsi !!
sumber
Menambahkan pengecualian saja tidak cukup bagi saya. Saya harus memberikan toples palsu:
sumber
Pasalnya, spring boot hadir dengan logback sebagai konfigurasi log default-nya, sedangkan camel menggunakan log4j. Itulah alasan konflik. Anda memiliki dua opsi, hapus logback dari boot musim semi seperti yang disebutkan dalam jawaban di atas atau hapus log4j dari unta.
sumber
Cukup tambahkan konfigurasi logback.xml di classpath Anda dan tambahkan semua konfigurasi Anda dengan menambahkan appender root. Setelah Spring boot selesai memuat kacang, itu akan mulai logging berdasarkan konfigurasi Anda.
sumber