我编写了一个小型Web应用程序,它禁用Wildfly 10.1的Promise
实现并使用自己的日志库(logback)。它工作正常,因为slf4j
结果为LoggerFactory.getILoggerFactory()
。
但是后来我为更大的应用程序使用相同的代码(在ch.qos.logback.classic.LoggerContext
中有52个jar文件)WEB-INF/lib/
仍然解析为JBoss实现LoggerFactory.getILoggerFactory()
,默认情况下。
我如何调查究竟保留服务器的日志记录而不是我的日志? (当然要解决问题。)
使用Maven依赖:“slf4j-api”1.6.1,“logback-classic”和“logback-core”0.9.28。
文件org.slf4j.impl.Slf4jLoggerFactory
,已知在两种情况下均已正确定位:
jboss-deployment-structure.xml
答案 0 :(得分:1)
我知道这是一个老话题,但是我有一个类似的问题。 因此,我将描述问题及其解决方法。
我在Web应用程序中使用spring-boot并与jboss wildfly 10一起运行。 当我尝试在项目中集成哨兵和回发时,该应用程序读取文件logback.xml,但使用另一个日志系统。
我意识到wildfly忽略了logback,而是使用jboss-logging。 因此,我禁用了jboss日志记录模块,然后,我的应用程序开始使用logback,一切正常。
但这是我禁用日志子系统的方式:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</deployment>
</jboss-deployment-structure>