繁体   English   中英

使用 jboss/wildfly 10 进行 SLF4J 日志记录

[英]SLF4J logging with jboss/wildfly 10

我有一个在 WildFly 10 服务器上运行的 Java webapp。 我曾经有以下库作为 Maven 依赖项:

        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>

        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>

        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>

        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>

我现在想使用 Wildfly 的内置日志记录子系统。

  • 我需要将哪些库添加到我的项目中?
  • 如何配置在standalone.xml 中声明的默认日志类别和根记录器以在级别“debug”记录包“com.mycompany”中的所有内容?
  • 我在我的 Eclipse 中将 Wildfly 服务器作为插件运行。 通过使用控制台处理程序,我希望将日志写入 Eclipse 的控制台

目前,它不起作用,我不确定我配置错误的 3 个步骤中的哪一个。 这是standalone.xml 中的一个片段:

 ...            
        <logger category="com.company">
            <level name="DEBUG"/>
        </logger>
        <root-logger>
            <level name="DEBUG"/>
            <handlers>
                <handler name="CONSOLE"/>
                <handler name="FILE"/>
            </handlers>
        </root-logger>
 ...

您在standalone.xml是正确的。 但是,你包含太多的slf4j依赖项。 slf4j首先是一个日志记录。 您的应用程序中不需要包含实现依赖项。

首先,您需要从pom中删除log4j2依赖项。 然后将org.slf4j:slf4j-api标记为<scope>provided</scope>因为容器已经为您提供了依赖关系。 这应该就是你需要做的。

我知道答案有点晚了,但也许它可以帮助某人。

使用 WildFly 25.0.0 遇到了同样的问题。

解决方案:在您的战争档案中创建一个名为“jboss-deployment-structure.xml”的文件夹“META-INF”中的文件,并指定应从类路径中排除哪些模块:

<jboss-deployment-structure>
    <deployment>
        <!-- Exclusions allow you to prevent the server from automatically adding some dependencies     -->
        <exclusions>
            <module name="org.slf4j" />
            <module name="org.slf4j.impl" />
        </exclusions>
    </deployment>
</jboss-deployment-structure>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM