【问题标题】:How do I change log level in runtime without restarting Vert.x application如何在运行时更改日志级别而不重新启动 Vert.x 应用程序
【发布时间】:2018-05-16 05:36:30
【问题描述】:

我知道我们可以通过将它放在 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 中通过 jboss cli 所做的那样。

【问题讨论】:

    标签: java logging vert.x


    【解决方案1】:

    此文件不必与应用程序一起构建。它只需要在类路径上。

    但无论如何,我不相信 JDK 日志记录支持配置文件的热重载。不过,还有其他日志记录工具可以做到。喜欢Logback-classic

    Logback-classic 可以扫描其配置文件的变化,并在配置文件发生变化时自动重新配置。

    例如,每五秒重新加载一次:

    <configuration scan="true" scanPeriod="5 seconds" > 
      ...
    </configuration> 
    

    Vert.x 可以配置为使用different logging frameworks。为此,您必须设置vertx.logger-delegate-factory-class-name 系统属性。由于 Logback-classic 是一个 slf4j 实现,你需要:

    -Dvertx.logger-delegate-factory-class-name=io.vertx.core.logging.SLF4JLogDelegateFactory
    

    【讨论】:

    • 感谢您的建议。这会有所帮助
    猜你喜欢
    • 2016-02-23
    • 2015-04-01
    • 2013-11-06
    • 1970-01-01
    • 1970-01-01
    • 2019-04-09
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多