【问题标题】:Delaying Log4j initialization延迟 Log4j 初始化
【发布时间】:2017-11-11 17:26:45
【问题描述】:

我的应用程序将有一个配置文件来配置其设置。

我希望这是应用程序使用的唯一配置文件,

应用程序将从 jar 文件运行,这意味着 log4j 将在应用程序运行后立即启动。

有什么方法可以延迟 log4j 的初始化,以便我可以使用配置文件中的信息来配置 log4j,然后启动 log4j?

【问题讨论】:

  • Log4j 不会立即启动。它在第一次使用时加载它的配置。如果它在您显式(重新)初始化它之前进行了初始化,那是因为您在那之前使用了它。要么不要,要么只接受配置是默认配置,直到你重新配置它。
  • 请想一想你是否真的想用自己的语法把配置放到你自己的配置文件中。 Log4J 是众所周知的并且有文档记录 - 你确定你的文档会一样好吗?为什么不使用一个好的默认值并让用户参考 Log4J 文档?

标签: java logging log4j


【解决方案1】:

正如 Andreas 所写,您(或您调用的库)显然使用 Log4J。但是如果没有简短的代码示例,我们无法告诉您发生了什么(提示:通过删除代码以获得简短的示例,您可能会自己找到罪魁祸首)。

根据Documentation,甚至应该可以(从 2.4 版开始)在 Log4J 启动后以编程方式更改配置。

【讨论】:

    猜你喜欢
    • 2020-05-10
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 2012-07-27
    相关资源
    最近更新 更多