我有一个最终的静态记录器对象,这是在首次执行main方法时创建的。如果日志文件不在那里,则创建它然后附加到(使用log4j API,appender)。但是,我想检查运行应用程序的计算机是否已创建应用程序将保存到的目录。
问题是此文件夹检查/创建需要在创建日志之前发生,并且在类实例化时创建日志。我有一个标准的方法来处理这个问题,我想避免重新放置所有日志记录语句,以便保持记录器静态更好?
答案 0 :(得分:1)
您可以使用static initializer来实现此目的:
public class Foo {
static {
//check the directory
//initialize the logger
}
}
这个静态initalizer将在加载类时运行。因此,您可以在实际创建记录器之前检查目录是否存在。