定时清理tomcat文件夹下logs的文件
清理一周之前的日志文件避免占用过多的磁盘空间
@Scheduled(cron = "0 30 1 * * ?")
public void clearLogs(){
String logsDir = System.getProperty("catalina.base");
System.out.println(logsDir+"==============");
if(StringUtil.isNotEmpty(logsDir)){
logsDir += "\\logs";
getFileList(logsDir);
System.out.println("将要删除的文件总数量:" + filelist.size());
int num = 0;
for(File file:filelist){
if(file.exists()) file.delete();
num++;
}
System.out.println("删除的文件总数量:" + num);
filelist.clear();
System.out.println("删除后清空集合后的数量:"+filelist.size());
}
}
private void getFileList(String strPath) {
File file = new File(strPath);
if (file.exists()) {
File[] files = file.listFiles();// 该文件目录下文件全部放入数组
if (null == files || files.length == 0) {
System.out.println("文件夹是空的!");
return;
} else {
for (File file2 : files) {
if (file2.isDirectory()) {
//System.out.println("文件夹:" + file2.getAbsolutePath());
getFileList(file2.getAbsolutePath());
} else {
//System.out.println("文件:" + file2.getAbsolutePath());
int dayNum = 30;//删除多少天前的数据
Date tempDate = DateUtil.addDay(new Date(),-1 * dayNum);
long tempLong = tempDate.getTime();
long fileLong = file2.lastModified();
if(tempLong > fileLong){
filelist.add(file2);
}
}
}
}
} else {
System.out.println("文件不存在!");
}
}