gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 21:18:09 26 4
gpt4 key购买 nike

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

<exclude-subsystems>
<subsystem name="logging"/>
</exclude-subsystems>

我们使用 SLF4j 和 Logback 后端,因此项目依赖项(Gradle 格式)包括以下内容:

compile 'org.slf4j:slf4j-api:1.7.12'
compile 'ch.qos.logback:logback-classic:1.1.3'
compile 'org.slf4j:jcl-over-slf4j:1.7.12'

最近我添加了另一个使用 java.util.logging 而不是 SLF4j 的库,因此它的日志只会输出到 stdout。为了解决这个问题,我添加了另一个依赖项:

compile 'org.slf4j:jul-to-slf4j:1.7.12'

并在应用程序初始化代码中添加了以下两行Java代码:

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

现在该库也可以正常记录。

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

[...] UT005023: Exception handling request to /Main.html

但现在我看到了这个:

[...] UT005023: Exception handling request to %s

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

最佳答案

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

必须将其配置为推送到 JUL。

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

所以你应该研究如何告诉Jboss在wildfly中登录到slf4j。

关于logging - 使用 jul-to-slf4j WildFly 记录未格式化的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30936081/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com