Spring使用SLF4J代替Commons Logging写日志

来源:互联网 发布:带着淘宝混异界 叶忆落 编辑:程序博客网 时间:2024/06/04 18:32

项目的日志更换成slf4j和logback后,发现项目无法启动。错误提示java.lang.ClassNotFoundException: org.apache.commons.logging.Log,如图所示。原因是Spring默认使用commons logging写日志,需要桥接工具把日志输入重定向到slf4j。在项目中添加commons logging到slf4j的桥接器jcl-over-slf4j即可解决该问题。

<dependency>    <groupId>org.slf4j</groupId>    <artifactId>jcl-over-slf4j</artifactId>    <version>1.7.12</version></dependency>

错误提示

Caused by: java.lang.NoClassDefFoundError: Lorg/apache/commons/logging/Log;    at java.lang.Class.getDeclaredFields0(Native Method)    at java.lang.Class.privateGetDeclaredFields(Class.java:2575)    at java.lang.Class.getDeclaredFields(Class.java:1908)    at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)    at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:256)    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:132)    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:65)    at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:334)    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:774)    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:305)    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:5095)    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)    ... 6 moreCaused by: java.lang.ClassNotFoundException: org.apache.commons.logging.Log    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1295)    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1147)    ... 20 more

错误提示

4 0
原创粉丝点击