Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从spring boot starter web中排除Logback依赖性会阻止log4j系统正确初始化_Java_Spring Boot_Maven_Log4j_Slf4j - Fatal编程技术网

Java 从spring boot starter web中排除Logback依赖性会阻止log4j系统正确初始化

Java 从spring boot starter web中排除Logback依赖性会阻止log4j系统正确初始化,java,spring-boot,maven,log4j,slf4j,Java,Spring Boot,Maven,Log4j,Slf4j,我以前遇到过spring应用程序的多绑定错误问题,我了解到修复方法是排除spring boot starter web依赖项的一个组件。我现在遇到的问题是log4j想要初始化,但是logback的依赖性是经典的 以下是我最初的错误: SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/C:/Users/.m2/repository/org/slf4j/slf4j-log4j1

我以前遇到过spring应用程序的多绑定错误问题,我了解到修复方法是排除spring boot starter web依赖项的一个组件。我现在遇到的问题是log4j想要初始化,但是logback的依赖性是经典的

以下是我最初的错误:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
我不能排除slf4-log4j12依赖项,因为它是该模块运行所必需的,也不能排除logback依赖项,因为它需要在spring应用程序运行时初始化

以下是我在排除logback时遇到的问题:

log4j:WARN No appenders could be found for logger (org.springframework.web.context.support.StandardServletEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
以下是排除slf4j-log4j时出现的错误:

Exception in thread "main" java.lang.AbstractMethodError: org.springframework.boot.context.config.ConfigFileApplicationListener.supportsSourceType(Ljava/lang/Class;)Z

为什么你认为logback是一种依赖

Logback直接实现slf4j,您通过sl4j api使用Logback,因此您的代码永远不会依赖于Logback,但它可能依赖于slf4j

你在这里概述的问题:

log4j:WARN No appenders could be found for logger (org.springframework.web.context.support.StandardServletEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
是您的项目没有为log4j指定配置的结果

库slf4j-log4j12-1.6.1.jar是log4j的sl4j绑定。这意味着任何使用slf4j的代码日志记录都将被转发到log4j

排除logback是正确的方法。排除logback之后,您只需要对log4j进行配置

有关如何指定配置,请参阅。
如果您认为项目具有现有配置,请查找log4j.properties或log4j.xml文件。确保它们位于类路径上。这里有人问了一个类似的问题:

为什么您认为logback是一种依赖关系

Logback直接实现slf4j,您通过sl4j api使用Logback,因此您的代码永远不会依赖于Logback,但它可能依赖于slf4j

你在这里概述的问题:

log4j:WARN No appenders could be found for logger (org.springframework.web.context.support.StandardServletEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
是您的项目没有为log4j指定配置的结果

库slf4j-log4j12-1.6.1.jar是log4j的sl4j绑定。这意味着任何使用slf4j的代码日志记录都将被转发到log4j

排除logback是正确的方法。排除logback之后,您只需要对log4j进行配置

有关如何指定配置,请参阅。
如果您认为项目具有现有配置,请查找log4j.properties或log4j.xml文件。确保它们位于类路径上。这里提出了一个类似问题:

Hi,在这些情况下您可以添加pom.xml依赖项吗?Hi,pom和springboot main(starter)类在这里是必需的Hi,您可以在这些情况下添加pom.xml依赖项吗?Hi,pom和springboot main(starter)这里需要上课。谢谢你的解决方案,这似乎奏效了。谢谢你的解决方案,这似乎奏效了。