我有一个使用 log4j 日志框架的 Java 应用程序。在我的应用程序中,我有几个模块,每个模块都创建自己的日志文件。我通过命令行启动我的应用程序,传递一个参数来告诉我的应用程序应该运行哪个模块。假设我有 3 个模块,所以每次启动一个模块时,都会创建所有 3 个日志文件,但只有一个包含信息(我刚刚启动的模块中的那个)。我已将每个 File Appender 设置为
...append = false
这样每次我启动我的应用程序时,我都会有没有旧日志数据的新日志文件。
现在我有一个创建流程链的批处理文件,因此在批处理文件中,所有 3 个模块都在另一个之后被调用。但问题是:最后,前 2 个模块的日志文件是空的,只有最后一个模块将其日志存储在正确的日志文件中(当然这必须是这样,因为我将 append 选项设置为每个文件追加器)
我正在寻找以下解决方案:当我启动一个模块时,我想检查该模块的日志文件是否为空。如果是,那么我只需将日志记录数据附加到此文件中。如果文件中已经有数据,我想删除内容以存储当前的日志记录数据。所以最后当我调用所有 3 个模块(每次使用不同的参数启动应用程序 3 次)时,我希望填充所有 3 个日志文件。有任何想法吗?