【问题标题】:Reload the Log4j.xml file configuration on event occurance在事件发生时重新加载 Log4j.xml 文件配置
【发布时间】:2015-04-30 01:48:48
【问题描述】:

我已经完成了 Log4j2 最新版本库的简单配置(带有 log4j2.xml 配置文件),它工作正常。

现在我想在更新事件触发时更新/重置配置,因为在互联网上检查 log4j2 jar.e.g 的最新版本中没有此类 API 可用。在旧的 api 中有一个方法叫做

   LogManager.resetConfiguration()

那么我如何重置配置或刷新 log4j2 配置运行时?

【问题讨论】:

  • 也许this 有帮助。

标签: java logging log4j log4j2


【解决方案1】:

Log4j 2 允许你指定一个 monitorInterval。 Log4j 将在 monitorInterval 中指定的秒数过后检查配置文件是否已被修改。如果您的文件已更改,它将被重新加载。

如果您不想使用自动方法,则需要获取 LoggerContext(Log4j 内部部分的一部分)并调用其重新配置方法。

final LoggerContext ctx = (LoggerContext) LogManager.getContext(false); ctx.reconfigure();

【讨论】:

  • 自动方法可以直接从xml conf文件配置,这样:<Configuration monitorInterval="2">每两秒检查一次文件
【解决方案2】:

我不确定它是否会从文件中重新加载配置,但你可以试试

LogManager.getContext(false).updateLoggers();

【讨论】:

    猜你喜欢
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多