) { Timer timer=new Timer(); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, UrlInfo.TIME_DELETE_HOUR); // 控制时 calendar.set(Calendar.MINUTE, UrlInfo.TIME_DELETE_MINUTES); // 控制分 calendar.set(Calendar.SECOND, UrlInfo.TIME_DELETE_SECOND); // 控制秒 Date time = calendar.getTime(); // 得出执行任务的时间,此处为今天的02:00:00 //获取时间 timer.scheduleAtFixedRate(new TimerTask() { int firstDate=0; int lastDate =0; @Override public void run() { logger.info("---【监听器监听到开始删除日志文件】---"); //获取日志文件夹的路径 String logPath=UrlInfo.GLOBALS_PATH+"/mdlog/mdWeb/"; /** * 定时删除任务 */ //获取当前日期往前推一个月的开始时间和结束时间 firstDate=logger.getForwardDate(-2); lastDate =logger.getForwardDate(-1); //首先进入目录去匹配是否有该文件夹 if(new File(logPath).isDirectory()){ //获取文件夹中的文件集合 File []logs=new File(logPath).listFiles(); //遍历集合 for(int i=0;i//获取第i个文件 File log=logs[i]; //获取第i个文件的名称 int logInt=Integer.parseInt(log.getName().substring(0,8)); //判断是在一个月内 if(logInt>=firstDate&&logInt<=lastDate){ logger.info("----监听器中,开始删除往前一个月的日志文件:"+log); //执行删除方法 log.delete(); } } } logger.info("---【监听器监听到删除日志文件结束】---"); } }, time, 24*60*60*1000);//每天执行一次 } }
注:监听器需要在web.xml文件中初始化
|