3

我有 2 个静态初始化程序试图互相调用:

  • 配置类中的一个,从属性文件中读取配置参数;
  • LoggerFactory 类中的一个,它设置默认的日志记录参数。

问题是它们相互引用:

  • 配置类需要记录器在读取属性文件时记录潜在的 I/O 问题。
  • LoggerFactory 需要配置文件来设置日志文件名、日志模式和默认日志级别。

这显然是不对的,我在这里和那里得到了一些 NPE。

有处理这种情况的标准方法吗?

4

3 回答 3

3

使用不需要配置的默认记录器,并在加载可配置记录器时被替换。这样您就可以以简单的方式轻松解决循环依赖关系。

于 2012-08-08T02:18:18.063 回答
1

您可以分离记录器的配置,并在配置类之前对其进行初始化。尽管这并不理想,但我已经在几个项目中看到了这一点。

于 2012-08-07T23:41:34.257 回答
1

您应该创建一个记录器,该记录器在程序启动时加载,但稍后在创建可配置的记录器时将其覆盖。

于 2012-08-07T23:55:42.030 回答