首页 > 解决方案 > Log4J 日志记录实现

问题描述

我在我的应用程序中使用 apache log4j,这是我正在部署的独立耳朵。日志正在显示。但是在运行时我试图更改日志级别,这并没有反映到我的应用程序中。例如:2 记录器我正在使用 info() 和 error()。部署应用程序并点击应用程序时,我将两个日志都放入我的日志文件中,因为在属性文件中我将日志级别配置为调试。现在运行时我将日志级别更改为错误。然后点击应用程序,它也会显示信息和错误。但理想情况下,它应该只显示错误日志。

这个问题的任何解决方案。

提前致谢

标签: loggingjbosslog4j

解决方案


正如您在评论中提到的,您standalone.xml在运行时直接进行修改。这是不好的做法,因为 Wildfly 可能会还原(并忽略)您的更改。如果您需要更改设置,请使用 Wildfly CLI 或 Web 控制台。

您可以像这样调用 Wildfly CLI:

/opt/jboss/jboss-eap-<version>/bin/jboss-cli.sh --controller=<ip>:<port> --connect
/subsystem=logging/root-logger=ROOT:write-attribute(name="level", value="ERROR")

如果这不起作用,Wildfly可能正在使用应用程序 ( war/ jar) 日志设置,例如在 中定义log4j.properties,因此您需要禁用应用程序日志配置并创建日志配置文件。这有点涉及,所以我不会在这里重复这些步骤。阅读在 Wildfly 服务器上运行时更改日志配置使用 Wildfly 在运行时更改日志级别以获取更多信息。

设置日志配置文件后,您可以Wildfly在运行时使用 CLI 更改日志设置,而无需重新加载服务器,如下所示:

/subsystem=logging/logging-profile=DEMO/root-logger=ROOT:write-attribute(name="level", value="ERROR")

键入exit以离开 CLI。


推荐阅读