Logging 带有logback的Spring引导日志记录问题

Logging 带有logback的Spring引导日志记录问题,logging,logback,spring-boot,Logging,Logback,Spring Boot,当我在传统的weblogic容器中部署SpringBootWeb应用程序时,我遇到了一些与日志记录相关的异常。同一个应用程序可以很好地使用嵌入式tomcat,而无需对其进行任何更改 对于weblogic 12 c,我看到了一个例外: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</arti

当我在传统的weblogic容器中部署SpringBootWeb应用程序时,我遇到了一些与日志记录相关的异常。同一个应用程序可以很好地使用嵌入式tomcat,而无需对其进行任何更改

对于weblogic 12 c,我看到了一个例外:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>people-mgmt</groupId>
    <artifactId>people-mgmt-data</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
位于org.springframework.util.Assert.isInstanceOf(Assert.java:339) org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:92) 在 org.springframework.boot.logging.AbstractLoggingSystem.initializeWithSensibleDefaults(AbstractLoggingSystem.java:62) 在 org.springframework.boot.logging.AbstractLoggingSystem.beforeInitialize(AbstractLoggingSystem.java:45) 在 org.springframework.boot.logging.logback.LogbackLoggingSystem.beforeInitialize(LogbackLoggingSystem.java:68) 在 org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:131) 在 org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:98) 在 org.springframework.boot.context.event.EventPublishingRunListener.publishEvent(EventPublishingRunListener.java:92) 在 org.springframework.boot.context.event.EventPublishingRunListener.started(EventPublishingRunListener.java:53) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:269) 在 org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:142) 在 org.springframework.boot.context.web.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:89) 在 org.springframework.boot.context.web.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:51) 在 org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:175) 在 weblogic.servlet.internal.WebAppServletContext.initContainerInitializer(WebAppServletContext.java:1394) 在 weblogic.servlet.internal.WebAppServletContext.initContainerInitializers(WebAppServletContext.java:1331) 在 weblogic.servlet.internal.WebAppServletContext.initContainerInitializers(WebAppServletContext.java:1317) 在 weblogic.servlet.internal.WebAppServletContext.preload资源(WebAppServletContext.java:1834) 在 weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2876) 在 weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1661) 在 weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:823) 在 weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360) 在 weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356) 在 weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42) 在 weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:138)

我在父pom中使用spring平台1.0.1。我的web模块pom如下所示:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>people-mgmt</groupId>
    <artifactId>people-mgmt-data</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
弹簧启动机tomcat
假如
人员管理
人员管理数据
0.0.1-快照
org.apache.tomcat.embed
汤姆卡特·贾斯珀
假如
javax.servlet
jstl
org.springframework.boot
弹簧起动试验
测试
这是我的项目依赖关系树:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>people-mgmt</groupId>
    <artifactId>people-mgmt-data</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>


如果您能帮助解决这个问题,我们将不胜感激

这是weblogic类加载器的问题。请检查这些链接-和

因此,通过在WEB-INF文件夹下的weblogic.xml中添加以下内容解决了此问题

<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app">
    <container-descriptor>
        <prefer-application-packages>
            <package-name>org.slf4j</package-name>
        </prefer-application-packages>
    </container-descriptor>
</weblogic-web-app>

org.slf4j

您使用的是什么版本的tomcat和JDK?tomcat-7.0.54和JDK1.7.0_60@Dave请查看我的问题更新。我在类路径中有一个由STS生成的默认logback.xml,它导致了tomcat的问题。删除默认的logback.xml后,tomcat就可以正常工作了。但是weblogic仍然存在同样的问题。看起来类路径上有一个不兼容的slf4j版本。它在容器的某个地方吗?@Dave,它与weblogic类加载器有关。我刚想出来。通过在weblogic.xml中添加更好的jar,我能够部署应用程序。谢谢你的快速回复。