无法启用Spring框架的日志记录 [英] can't enable logging of spring framework

查看:84
本文介绍了无法启用Spring框架的日志记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在Spring框架和Spring Security中配置日志记录,并遵循

I want to configure the logging in Spring framework and Spring Security, and followed this http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/overview.html#overview-not-using-commons-logging

但是当我加载Tomcat时,我遇到了这个问题:

but when I load the Tomcat I got this problem:

GRAVE:子容器在启动过程中失败 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine [Catalina] .StandardHost [localhost] .StandardContext [/RH-Explore]] 在java.util.concurrent.FutureTask.report(未知源)在 java.util.concurrent.FutureTask.get(未知源) org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) 在 org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:816) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1575) 在 org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1565) 在java.util.concurrent.FutureTask.run(未知来源) java.util.concurrent.ThreadPoolExecutor.runWorker(未知源),位于 java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知源) java.lang.Thread.run(未知源)由: org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine [Catalina] .StandardHost [localhost] .StandardContext [/RH-Explore]] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) ...还有6个

GRAVE: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/RH-Explore]] at java.util.concurrent.FutureTask.report(Unknown Source) at java.util.concurrent.FutureTask.get(Unknown Source) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:816) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/RH-Explore]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) ... 6 more

原因:java.lang.NoClassDefFoundError: org/springframework/core/io/Resource java.lang.Class.getDeclaredFields0(本机方法),位于 java.lang.Class.privateGetDeclaredFields(未知源),网址为 java.lang.Class.getDeclaredFields(未知源),网址为 org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106) 在 org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:270) 在 org.apache.catalina.startup.WebAnnotationSet.loadApplicationListenerAnnotations(WebAnnotationSet.java:89) 在 org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:63) 在 org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:415) 在 org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:892) 在 org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:386) 在 org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) 在 org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5412) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ...还有6个

Caused by: java.lang.NoClassDefFoundError: org/springframework/core/io/Resource at java.lang.Class.getDeclaredFields0(Native Method) at java.lang.Class.privateGetDeclaredFields(Unknown Source) at java.lang.Class.getDeclaredFields(Unknown Source) at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106) at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:270) at org.apache.catalina.startup.WebAnnotationSet.loadApplicationListenerAnnotations(WebAnnotationSet.java:89) at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:63) at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:415) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:892) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:386) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5412) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 6 more

pom.xml

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
            <scope>runtime</scope>
              <exclusions>
                 <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                 </exclusion>
              </exclusions>
        </dependency>

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
            <scope>runtime</scope>
              <exclusions>
                 <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                 </exclusion>
              </exclusions>
        </dependency>

<dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
            <version>${spring.security.version}</version>
            <scope>runtime</scope>
            <exclusions>
                 <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

<dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>jcl-over-slf4j</artifactId>
          <version>1.5.8</version>
          <scope>runtime</scope>
       </dependency>
       <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
          <version>1.5.8</version>
          <scope>runtime</scope>
       </dependency>
       <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-log4j12</artifactId>
          <version>1.5.8</version>
          <scope>runtime</scope>
       </dependency>
       <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>1.2.14</version>
          <scope>runtime</scope>
       </dependency> 

推荐答案

我解决了问题!

首先,此错误:

GRAVE:子容器在启动过程中失败 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine [Catalina] .StandardHost [localhost] .StandardContext [/RH-Explore]]

GRAVE: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/RH-Explore]]

是部署问题,所以我为项目做了清理,然后出现此错误:

is problem of deployment, so I did a clean for the project and then i got this error :

坟墓:上下文环境初始化的例外 (上下文已初始化)àl'instance de classe d'écoute(侦听器) org.springframework.web.context.ContextLoaderListener java.lang.AbstractMethodError: org.slf4j.impl.JDK14LoggerAdapter.log(Lorg/slf4j/Marker; Ljava/lang/String; ILjava/lang/String; [Ljava/lang/Object; Ljava/lang/Throwable;)V

Grave: Exception lors de l'envoi de l'évènement contexte initialisé (context initialized) à l'instance de classe d'écoute (listener) org.springframework.web.context.ContextLoaderListener java.lang.AbstractMethodError: org.slf4j.impl.JDK14LoggerAdapter.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V

此错误是SLF4J兼容性的问题,因此我将版本从1.5.8更改为1.7.12 而且我发现由于此错误,应从pom.xml jar中删除一些重复的SLF4J软件包:

this error is a problem of compatibilities of the SLF4J, so I changed the version from 1.5.8 to 1.7.12 and also I found some duplicated SLF4J packages should be removed from the pom.xml jars because of this error :

SLF4J:类路径包含多个SLF4J绑定.

SLF4J: Class path contains multiple SLF4J bindings.

在启动tomcat时,控制台中也出现此错误:

also I have this error in the console while starting tomcat:

信息:在类路径上未检测到Spring WebApplicationInitializer类型

INFOS: No Spring WebApplicationInitializer types detected on classpath

这是servlet-api中的问题,我使用的是版本2.5,因此为了解决此问题,我将其更改为版本3.0.1

this a problem in servlet-api, I am using the version 2.5 so to solve it I changed to the version 3.0.1

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
</dependency>

所有问题都消失了,春季测井工作良好:D

and all problems is gone and spring logging is working fine :D

这篇关于无法启用Spring框架的日志记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆