Logging 使用jul-to-slf4j,WildFly会记录未格式化的消息

Logging 使用jul-to-slf4j,WildFly会记录未格式化的消息,logging,slf4j,wildfly-8,jul-to-slf4j,Logging,Slf4j,Wildfly 8,Jul To Slf4j,我们的应用程序在WildFly中运行,但我们使用自定义日志记录,因此在jboss deployment structure.xml中有以下几行代码: <exclude-subsystems> <subsystem name="logging"/> </exclude-subsystems> 最近,我添加了另一个库,它使用java.util.logging而不是SLF4j,所以它的日志将直接转到stdout。为了解决这个问题,我添加了另一个依赖项: com

我们的应用程序在WildFly中运行,但我们使用自定义日志记录,因此在
jboss deployment structure.xml
中有以下几行代码:

<exclude-subsystems>
  <subsystem name="logging"/>
</exclude-subsystems>
最近,我添加了另一个库,它使用
java.util.logging
而不是SLF4j,所以它的日志将直接转到stdout。为了解决这个问题,我添加了另一个依赖项:

compile 'org.slf4j:jul-to-slf4j:1.7.12'
并在应用程序初始化代码中添加了以下两行Java代码:

SLF4JBridgeHandler.removeHandlersForRootLogger ();
SLF4JBridgeHandler.install ();
现在,该库的日志也很好

但是,出现了另一个问题:现在WildFly消息也被写入我们的日志(似乎它也使用java.util.logging)。这并没有那么糟糕(即使我们更喜欢将应用程序日志和Web服务器日志分开),但它们是非格式化的,带有未转换的占位符。例如,在添加之前,WildFly将记录此消息:

[…]UT005023:对/Main.html的异常处理请求

但现在我看到的是:

[…]UT005023:对%s的异常处理请求


我是否需要添加一些额外的配置,以便
jul-to-slf4j
可以正确格式化消息?或者使用参数处理消息是否存在一些基本限制?

Hmmm。。。看起来Wildfly(当然是版本8+)使用JBoss日志记录。据我所知,Jboss日志是另一个日志包装器

必须将其配置为推至7月

从我对源代码的阅读来看,它似乎也支持推进slf4j


因此,您应该研究如何让Jboss在wildfly中登录到slf4j。

您是否想过使用这里描述的日志配置文件:

清单版本:1.0 日志记录配置文件:EJB

SLF4JBridgeHandler.removeHandlersForRootLogger ();
SLF4JBridgeHandler.install ();