0
我使用下面的代码来配置我的日志记录。Util日志记录不会删除旧日志文件轮流
public Boolean configureLogPath(String logPath, String level, String logComponents, int logFileSize,
int logFileCount) {
int logFileSizeInKbs = logFileSize * 1000;
Boolean result = false;
String[] splitComponents = logComponents.split(",");
for (String component : splitComponents) {
loggableComponents.add(component);
}
switch (level) {
case "info":
LOGGER.setLevel(Level.INFO);
break;
case "severe":
LOGGER.setLevel(Level.SEVERE);
break;
case "debug":
LOGGER.setLevel(Level.CONFIG);
break;
case "off":
LOGGER.setLevel(Level.OFF);
break;
default:
LOGGER.setLevel(Level.SEVERE);
}
try {
simpleFormatter = new SimpleFormatter();
logFileHandler = new FileHandler(logPath, logFileSizeInKbs, logFileCount);
logFileHandler.setFormatter(simpleFormatter);
LOGGER.setFilter(filter);
LOGGER.addHandler(logFileHandler);
result = true;
} catch (SecurityException e1) {
result = false;
LOGGER.log(Level.SEVERE, "Security exception when reading log file" + e1);
} catch (IOException e1) {
result = false;
LOGGER.log(Level.SEVERE, "IO Exception when reading log file" + e1);
}
return result;
}
然而,尽管我已经给出了相关参数中的FileHandler为要旋转的日志,旧日志文件仍然存在。这是实用程序日志记录的行为还是有什么我可以做的,以在旋转期间删除旧文件?
如果我手动关闭日志时条件删除文件不会这么做吗?这就是说,如果我的日志还没有达到轮换数量,并且如果我想停止日志记录,我会将当前日志的日志级别设置为“关闭”。那么这不会删除当前正在使用的日志吗? – mayooran
对于新构建的FileHandler来说。这并不难,因为您可以将级别设置为2147483646而不是OFF。或者可以修改FileHandler以跟踪它不是第一次调用。 – jmehrens