我的 Java 应用程序 CB 从数据库获取数据,例如“案例 1”。每次 CB 启动时都会创建一个日志文件:
Logger logger = Logger.getLogger("CBLog");
fh = new FileHandler(CBDataPath + "\\CB.log";
logger.addHandler(fh);
SimpleFormatter formatter = new SimpleFormatter();
fh.setFormatter(formatter);
logger.info("CB started");
我想针对特定情况保留日志文件的 2 个先前版本。如何最容易地做到这一点?
这是我的一个想法。我可以在案例数据库中维护一个表示运行编号的整数。每次连续运行都会将日志文件命名为 CB_CaseA_n.log,其中 n 是前一次运行编号加 1。每次在 CaseA 上运行 CB 时,都会在 CasaA 目录中搜索所有 CB_CaseA_?.log 文件,并且仅保留 3 个最新文件。即,在运行 10 时,CB_CaseA_7 将被删除。看起来不太优雅。
有更好的方法吗?
最佳答案
来自java.util.logging.FileHandler :
count specifies how many output files to cycle through (defaults to 1).
"%g" the generation number to distinguish rotated logs
创建一个具有计数和生成模式的 FileHandler:
new FileHandler("CBDataPath + "\\CB%g.log, Integer.MAX_VALUE, 2, false);
关于java - 保留日志文件的 2 个先前版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41579649/