2016-07-31 96 views
3

我有一個運行在WildFly 10服務器上的Java webapp。我曾經有以下庫作爲Maven依賴項:SLF4J使用jboss/wildfly記錄10

 <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的控制檯中

目前,它無法正常工作,我不確定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> 
... 

回答

1

你在standalone.xml中有什麼是正確的。但是,你包含太多的slf4j依賴關係。 slf4j首先是爲了記錄外觀。不需要在應用程序中包含實現依賴關係。

首先,您需要從您的pom中刪除log4j2依賴項。然後將org.slf4j:slf4j-api標記爲<scope>provided</scope>,因爲容器已經爲您提供了依賴關係。這應該是你需要做的一切。

+1

值得注意的是,你需要弄清楚WildFly使用的SLF4J版本。對於WildFly 10,它是1.7.7,你可以在'modules/system/layers/base/org/slf4j/main /'中找到JAR。 – mrts

+0

我認爲這不重要。 slf4j API應該與舊版本和更新的1.7.x版本的API兼容。 –