簡體   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