Wildfly日志记录模块排除不适用于大型Web应用程序

时间:2016-12-04 21:08:32

标签: java logging wildfly

我编写了一个小型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

1 个答案:

答案 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>

The link when i found my anwser: