【发布时间】:2014-02-12 09:39:40
【问题描述】:
我想对我的应用程序的日志记录做一些调整... 我需要一些帮助来增强我在主要方法中的以下内容:
public static void main(String[] args) {
try {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Handler h = new FileHandler("../logs/MyLogFile_"
+ sdf.format(date) + ".log", true);
h.setFormatter(new SingleLineFormatter());
h.setLevel(Level.ALL);
logger.setUseParentHandlers(false);
logger.addHandler(h);
}
//...
}
每次我运行应用程序时,它都会创建一个带有日期戳的日志文件。但我想在我的 Unix 目录中实现这样的目标:
-rw-r--r-- 1 r787848 dev 45271 Feb 4 11:31 MyLogFile.log.06
-rw-r--r-- 1 r787848 dev 45308 Feb 5 11:36 MyLogFile.log.05
-rw-r--r-- 1 r787848 dev 44336 Feb 6 06:50 MyLogFile.log.04
-rw-r--r-- 1 r787848 dev 44379 Feb 7 08:41 MyLogFile.log.03
-rw-r--r-- 1 r787848 dev 44409 Feb 10 08:45 MyLogFile.log.02
-rw-r--r-- 1 r787848 dev 44446 Feb 11 12:36 MyLogFile.log.01
我想定义一组让我们说 6 个日志文件来捕获应用程序日常运行的日志记录。当涉及到日志记录时,我希望应用程序写入最旧的日志文件,因此在上述实例中,在Feb 12 08:45 上运行应用程序应该清除MyLogFile.log.06 并为feb 12 写入新的。
如何在我所拥有的基础上使用java.util.logging 来实现这一点。不幸的是,我无法配置log4j 属性并且只想使用java.util.logging。
【问题讨论】:
-
如果它总是写入最旧的文件,那么不会只创建一个文件吗?或者您的意思是仅在创建 6 个文件后才写入最旧的文件?
标签: java file logging file-io java.util.logging