Parece que Springboot se autoconfigura para usar Logback con Tomcat. Me gustaría deshabilitar esto y usar el que proporciono en mi classpath.
El mensaje de error a continuación.
LoggerFactory no es un Logback LoggerContext pero Logback está en la ruta de clases. Elimine Logback o la implementación de la competencia (clase org.slf4j.impl.SimpleLoggerFactory) El objeto de la clase [org.slf4j.impl.SimpleLoggerFactory] debe ser una instancia de la clase 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
fuente
                
                
            fuente

java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory.Para agregar una solución mejor y más genérica en Gradle (se excluirán todas las instancias):
De https://docs.gradle.org/current/userguide/dependency_management.html
fuente
spring-boot-starter-loggingPara agregar una solución en gradle.
fuente
Descubrí que
spring-boot-starter-loggingno es necesario excluir el módulo completo . Todo lo que se necesita es excluir elorg.slf4j:slf4j-log4j12módulo.Agregar esto a un archivo de compilación de Gradle resolverá el problema:
Vea esta otra respuesta de StackOverflow para más detalles.
fuente
Me gusta esto para resolver mi problema
fuente
Para gradle,
Puede ver esta solución en: http://www.idanfridman.com/how-to-exclude-libraries-from-dependcies-using-gradle/
Sólo es necesario añadir
excludeenconfigurations:fuente
Busque spring-boot-starter-test en su pom.xml y modifíquelo de la siguiente manera:
Se corrigió un error como:
fuente
Siguiendo trabajos para mi
fuente
Podría ayudar si dice cuál es exactamente su registrador preferido y qué hizo para intentar instalarlo. De todos modos, Spring Boot intenta trabajar con lo que sea que esté en la ruta de clases, así que si no desea iniciar sesión, quítelo de la ruta de clases. Hay instrucciones para log4j en los documentos , pero lo mismo se aplicaría a otros sistemas de registro compatibles (cualquier cosa slf4j, log4j o java util).
fuente
Resolví mi problema a través de esto a continuación:
fuente
Esto funcionó para mí muy bien
Pero no funcionaría para los usuarios expertos . Todas mis dependencias estaban en libs.gradle y no las quería en otros archivos. Por lo que este problema se resolvió mediante la adición
exclude module : 'spring-boot-starter-loggingdespring-boot-starter-data-jpa,spring-boot-starter-testy en prácticamente todo con la palabra de arranque.ACTUALIZAR
El nuevo proyecto mío necesitaba una actualización, resulta que la versión
spring-boot-starter-test1.5 y anterior no la teníaspring-boot-starter-logging. 2.0 lo tienefuente
En mi caso, solo era necesario excluir el
spring-boot-starter-loggingartefacto delspring-boot-starter-securityuno.Esto está en un proyecto de arranque de primavera 2.2.6.RELEASE recién generado que incluye las siguientes dependencias:
Lo descubrí corriendo
mvn dependency:treey buscandoch.qos.logback.La bota de primavera relacionada
<dependencies>en mi sepom.xmlve así:fuente
Agregue esto en su build.gradle
fuente
Si este error ocurrió en SpringBoot cuando intenta usar log4j2, siga estos pasos:
Este error se produjo porque el logback anula los cambios de log4j2. Entonces, si desea usar log4j2, debe eliminar la biblioteca de logback y las dependencias.
Espero que esto ayude a alguien.
fuente
Forma correcta de excluir el registro predeterminado y configurar log4j para el registro.
Consulte Spring Logging - Cómo .
fuente
Para agregar una exclusión para el logback de Netbeans IDE
Haga clic con el botón derecho en el frasco y seleccione Excluir dependencia como se muestra a continuación. Esto excluye el jar de logback en pom.xml como este;
fuente
En mi caso, la exclusión a continuación funciona !!
fuente
Agregar exclusiones no fue suficiente para mí. Tuve que proporcionar un frasco falso:
fuente
La razón es que Spring Boot viene con logback como configuración de registro predeterminada, mientras que camel usa log4j. Ésa es la razón del conflicto. Tiene dos opciones, eliminar logback de spring boot como se menciona en las respuestas anteriores o eliminar log4j de camel.
fuente
Simplemente agregue la configuración logback.xml en su classpath y agregue toda su configuración con el agregado de raíz agregado. Una vez que el arranque de Spring complete la carga del bean, comenzará a registrar según su configuración.
fuente