Undertow java.util.logging:如何使用 java util logging 在运行时更改 undertow 服务器的日志记录级别
Posted
技术标签:
【中文标题】Undertow java.util.logging:如何使用 java util logging 在运行时更改 undertow 服务器的日志记录级别【英文标题】:Undertow java.util.logging: How to change logging level at runtime for undertow server using java util logging 【发布时间】:2021-01-30 23:55:19 【问题描述】:我有一个 logging.properties,其中处理程序是 java.util.logging.FileHandler,java.util.logging.ConsoleHandler。
根记录器的默认记录级别设置为 INFO。
日志文件在启动时传递给 JVM_OPTS。
如何使用 java.util.logging 在不重新启动服务器的情况下在运行时覆盖级别以说“FINEST”或“DEBUG”?
【问题讨论】:
您是使用 Undertow 作为独立服务器还是作为 WildFly 或 JBoss EAP 的一部分? 我碰巧回到这里,因为我现在需要实现 :) 我正在使用 undertow 作为独立服务器,尽管 Wildfly jars 现在附带最新的 undertow 版本。仅供参考,这是在容器世界中使用的。 【参考方案1】:您想使用ManagementFactory.getPlatformMXBean(PlatformLoggingMXBean.class) 来访问这些操作。最简单的方法是使用支持 MBean 访问的工具。
将JConsole 连接到Undertow(本地或远程)并使用MBean 选项卡更改记录器级别是理想的方式。一个问题是记录器名称不存在,除非代码触发了记录器的创建。您不能使用 MBean 在代码运行之前创建记录器。如果您在本地使用 JConsole,请确保它在与 Undertow 相同的帐户下运行。
-
使用运行 Undertow 的同一操作系统帐户启动 JConsole。
将 Jconsole 连接到 Undertow
选择 MBean 选项卡。
为
java.util.logging->Logging->Operations
展开树节点
选择setLoggerLevel
。
在p0
中输入准确的记录器名称。如果是根记录器,则输入为空白。
在p1
中输入级别名称。在这种情况下,它将是 FINEST
。
点击setLoggerLevel
。如果操作成功,您将看到Method successfully invoked
。
可以使用JMXTerm 执行类似的步骤。
【讨论】:
以上是关于Undertow java.util.logging:如何使用 java util logging 在运行时更改 undertow 服务器的日志记录级别的主要内容,如果未能解决你的问题,请参考以下文章