[英]How to enable DEBUG level logging with Jetty from UI
我正在尝试在 Jetty 实例中将日志记录级别设置为 DEBUG。 当我们在属性文件下添加 -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -Dorg.eclipse.jetty.LEVEL=DEBUG 并将其传递给 JVM 时,它正在工作。我的用例是我试图从 UI 设置日志记录级别,这样我们就可以在不重新启动服务器的情况下切换日志记录级别。 例如,DEBUG 到 WARN
选项 1:带有 JMX 的 Jetty 9 和 StdErrLog
使用 Jetty 9,在服务器上启用 JMX,并使用 JMX 客户端设置 StdErrLog 调试属性。
查找 MBean 名称org.eclipse.jetty.util.log:type=stderrlog,id=0
该属性称为debugEnabled
(布尔值)。
选项 2:带有 JMX 的 Jetty 10+ 和 jetty-slf4j-impl
如果使用 Jetty 10+,请在服务器上启用 JMX,并使用 JMX 客户端在您选择的记录器上设置级别。
例如:如果您使用的是jetty-slf4j-impl
( StdErrLog
的精神继承者)...寻找 MBean 名称org.eclipse.jetty.logging:type=jettyloggerfactory,id=0
所有命名的记录器都列为属性。
这些操作允许您使用普通的 JMX 操作技术getLoggerLevel
和setLoggerLevel
。
选项 3:不同的日志框架
或者,您可以使用更强大的记录器,如 logback 或 log4j2,甚至 java.util.logging,并有更多的运行时控制日志记录选项。
有些提供对 JMX 的运行时控制。
如果配置文件更改,有些提供重新加载配置的能力。
检查您的记录器以了解它可以做什么。
选项 4:编写自己的记录器级别更改 API
您可以轻松编写自己的工具,根据您自己的应用程序控制的某种事件更改记录器级别。
您甚至可以将其设为 Jetty 上的处理程序,该处理程序仅响应仅在本地主机上列出的特定命名 ServerConnectors。
您只需要获取命名的Logger
,然后设置级别。 (确切的 API 和技术取决于您选择的记录器实现)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.