我想对我的应用程序的日志记录进行一些调整... 我想要一些帮助,以便在主要方法中增强我的内容:
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
并为{{1}写新的内容}。
如何在我拥有feb 12
的基础上实现这一目标。很遗憾,我无法配置java.util.logging
属性,只想使用log4j
。
答案 0 :(得分:0)
唯一近似的做法是:
Handler h = new FileHandler("../logs/MyLogFile_"
+ sdf.format(date) + ".log", Integer.MAX_VALUE, 6, false);
请参阅:JDK-6350749 - 增强FileHandler以获得每日日志轮换功能。