java - Log4j2 使用spring时找不到?

标签 java spring maven log4j log4j2

我确实收到一条错误消息,表明未找到日志记录,尽管我确实有 log4j2 依赖项并且存在 jar,并且我从 spring 核心 jar 中排除了 commons-logging。但仍然有问题,我不知道是什么?

错误如下:

SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/orderlybilling]]
    at java.util.concurrent.FutureTask.report(FutureTask.java:122)
    at java.util.concurrent.FutureTask.get(FutureTask.java:188)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:724)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/orderlybilling]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    ... 6 more
Caused by: java.lang.NoClassDefFoundError: Lorg/apache/commons/logging/Log;

这是 pom.xml 的一部分

 <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.1.2.RELEASE</version>
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.1.2.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.1.2.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.1</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.7</version>
    </dependency>

最佳答案

有一个commons logging bridge您想要用于公共(public)日志记录,它扩展了 org/apache/commons/logging/Log 并桥接到 log4j2。

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-jcl</artifactId>
    <version>2.1</version>
</dependency>

关于java - Log4j2 使用spring时找不到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27306956/

相关文章:

java - 创建具有特定高度的空表并在 SWT 中单击按钮时重绘

java - 类型与类型定义的交集

spring - 在 grails 中更改 Spring Security 插件的登录页面

java - 组织服务职责

java - Apache Ignite 与 Spring Boot CrudRepo 无法初始化

java - Jelly 配置展开元素

java - 如何创建依赖类的单例实例?

java - 无法在 eclipse 中将项目 facet ear 的版本更改为 1.3 maven 错误?

java - 如何让 Maven 接受无效的 SSL 证书?

java - Maven:如何在 Linux 上使用非托管依赖项?