[英]Mapped Diagnostic Context (MDC) with SLF4J logging in jboss/wildfly 10 it's cleared
[英]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 的內置日志記錄子系統。
目前,它不起作用,我不確定我配置錯誤的 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.