我使用FileHandler进行日志记录。
Logger l = Logger.getLogger ("mylogger");
FileHandler fh = new FileHandler ("log", 1000000, 2, true);
l.addHandler (fh);这将始终登录到log.0。如果达到1MB,它将被移动到log.1。在空日志0处继续日志记录。
log.0
log.1据我所见,数字总是以0开头。是否有一种方法可以在当前日志中没有数字,并开始使用1旋转日志?
log
log.1发布于 2018-11-22 07:35:15
简单回答:不使用默认的FileHandler
也就是说,没有什么可以阻止您编写自己的StreamHandler。 implementation。它实际上只是几行修改来达到你想要的行为。
FileHandler实际上是在数组中预先生成所有文件名。您只需调整生成代码,使第一个元素不包含'0‘。非常不幸的是,它是一个私有方法,所以您必须重新实现整个类,而不是简单地扩展它。
注意:如果您打算将您的实现建立在OpenJDK的基础上,请尊重它所使用的许可证。我不是律师,所以您可能想询问其他人使用修改的OpenJDK源代码的合法性。
现在,这已经过时了,请查看generate()方法内部。有两个点使用generation参数,这是日志文件的索引。
} else if (ch2 == 'g') {
word = word.append(generation); // this line
// ...and...
if (count > 1 && !sawg) {
word = word.append('.').append(generation); // this line你想让他们被if (generation > 0)保护
这将阻止日志文件在文件名上显示第0次索引。
https://stackoverflow.com/questions/53416679
复制相似问题