【问题标题】:Undertow java.util.logging: How to change logging level at runtime for undertow server using java util loggingUndertow java.util.logging:如何使用 java util logging 在运行时更改 undertow 服务器的日志记录级别
【发布时间】: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 版本。仅供参考,这是在容器世界中使用的。

标签: logging java.util.logging undertow


【解决方案1】:

您想使用ManagementFactory.getPlatformMXBean(PlatformLoggingMXBean.class) 来访问这些操作。最简单的方法是使用支持 MBean 访问的工具。

将JConsole 连接到Undertow(本地或远程)并使用MBean 选项卡更改记录器级别是理想的方式。一个问题是记录器名称不存在,除非代码触发了记录器的创建。您不能使用 MBean 在代码运行之前创建记录器。如果您在本地使用 JConsole,请确保它在与 Undertow 相同的帐户下运行。

  1. 使用运行 Undertow 的同一操作系统帐户启动 JConsole。
  2. 将 Jconsole 连接到 Undertow
  3. 选择 MBean 选项卡。
  4. 为java.util.logging->Logging->Operations 展开树节点
  5. 选择setLoggerLevel。
  6. 在p0 中输入准确的记录器名称。如果是根记录器,则输入为空白。
  7. 在p1 中输入级别名称。在这种情况下,它将是 FINEST。
  8. 点击setLoggerLevel。如果操作成功,您将看到Method successfully invoked。

可以使用JMXTerm 执行类似的步骤。

【讨论】:

    猜你喜欢
    • 2018-07-17
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 2014-06-11
    • 2015-01-17
    • 1970-01-01
    相关资源
    最近更新 更多