一尘不染

如何重新执行Log4j“默认初始化过程”?

java

在运行时,我经常创建/修改 log4j Logger,Appenders,Levels,Layouts,并且有时需要将所有内容重置为默认值。

Log4j 系统具有定义明确的
默认初始化过程 ,该
过程 在将
log4j 类加载到内存时执行。有什么方法可以稍后在运行时以编程方式重新执行整个过程吗?

resetConfiguration()log4j 文档中找到了几种方法,但是不确定它们中的任何一种是否可以执行
默认初始化过程所
要做的工作:

  • BasicConfigurator.resetConfiguration();
  • Hierarchy.resetConfiguration();
  • LogManager.resetConfiguration();

欢迎提供有关重置 log4j 配置的其他建议!谢谢。


阅读 315

收藏
2020-12-03

共1个答案

一尘不染

根据该方法的文档doConfigure

从文件中读取配置。 现有配置不会清除或重置 。如果您需要其他行为,
resetConfiguration在调用doConfigure之前先调用method

因此,我相信使用与启动时相同的文件进行调用LogManager.resetConfiguration()和重新调用PropertyConfigurator.configure()将满足您的要求。

resetConfiguration()方法记录在Hierarchy类中。

2020-12-03