SLF4J使用jboss/wildfly记录10

问题描述:

我有一个运行在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> 
... 

你在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兼容。 –