如何以编程方式在 Java 中创建用于保存最终静态日志文件的文件夹

How do I programmatically create a folder that is to hold a final static log file, in Java

我有一个最终的静态记录器对象,它是在第一次执行 main 方法时创建的。如果日志文件不存在,则创建它然后附加到(使用 log4j API、appender)。但是我想检查应用程序 运行 所在的机器是否创建了应用程序要保存到的目录。

问题是这个文件夹 check/creation 需要在创建日志之前发生,并且日志是在 class 实例化时创建的。我有处理此问题的标准方法,我想避免重新放置所有日志记录语句,因此最好保持记录器静态?

您可以使用 static initializer 来实现:

public class Foo {
    static {
        //check the directory
        //initialize the logger
    }
}

加载 class 时,此静态初始化程序将 运行。因此,您可以在实际创建记录器之前检查该目录是否存在。