java - 如何在运行时更改日志级别而不重新启动 Vert.x 应用程序
问题描述
我知道我们可以通过将它放在 vertx-default-jul-logging.properties 文件中来更改日志级别。
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.ConsoleHandler.level=FINER
java.util.logging.FileHandler.limit=10000000
java.util.logging.FileHandler.count=10
java.util.logging.FileHandler.level=FINER
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
但是当我们更改此文件中的日志级别时,我需要重新启动应用程序,因为它是使用应用程序构建的。有什么方法可以在不重新启动应用程序的情况下更改日志级别,就像我们可以通过 jboss cli 在 jboss 中所做的那样。
解决方案
此文件不必与应用程序一起构建。它只需要在类路径上。
但无论如何,我不相信 JDK 日志记录支持配置文件的热重载。不过,还有其他日志记录工具可以做到。就像Logback-classic一样。
Logback-classic 可以扫描其配置文件中的更改,并在配置文件更改时自动重新配置自己。
例如,每五秒重新加载一次:
<configuration scan="true" scanPeriod="5 seconds" >
...
</configuration>
Vert.x 可以配置为使用不同的日志框架。为此,您必须设置vertx.logger-delegate-factory-class-name
系统属性。由于Logback-classic是一个slf4j实现,您需要:
-Dvertx.logger-delegate-factory-class-name=io.vertx.core.logging.SLF4JLogDelegateFactory
推荐阅读
- visual-studio - Visual Studio(不是 VS Code)可以进行远程 ssh 开发吗?文档说是的,但是
- linux - 如何在 bash 中解析这个 yaml 文件以获取特定值?
- react-native - 如何在 React Native Vector Icon 中选择同名的图标
- android - 无法使用 react-native 运行 android 模拟器(android-studio)
- python - Python中n个特征的梯度下降?吴恩达课程的一部分
- python - 在 Windows 上使用 Docker 创建 Lambda 层时遇到问题
- python - 在python中添加超链接到Excel csv文件
- angular - 缩放时如何从刻度中删除小数?
- micronaut - Micronaut 在 Controller 方法中将对象数组转换为 json 响应
- c# - 从 Firebase 中的实时数据库获取数据后,无法写入 Unity 的 TMPro 文本字段