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>
,因为容器已经为您提供了依赖关系。这应该是你需要做的一切。
值得注意的是,你需要弄清楚WildFly使用的SLF4J版本。对于WildFly 10,它是1.7.7,你可以在'modules/system/layers/base/org/slf4j/main /'中找到JAR。 – mrts
我认为这不重要。 slf4j API应该与旧版本和更新的1.7.x版本的API兼容。 –