设为首页 加入收藏

TOP

Java类写入日志和定时删除日志(一)
2016-12-28 08:16:16 】 浏览:367
Tags:Java 写入 日志 定时 删除

一、写入日志的工具类


LogUtil.java



import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
*
*@author yang
*@类功能说明:创建日志的工具类
*@修改日期:2015-11-3 下午05:02:41
*@修改说明:
*@创建时间:2015-11-3 下午05:02:41
*@版本:V1.0
*/
public class LogUtil {
private String pathurl =UrlInfo.GLOBALS_PATH+"/mdlog/mdWeb/";//另一个类中public static String GLOBALS_PATH=""; //设置日志的全局变量
private String time =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
private String daytime =new SimpleDateFormat("yyyyMMdd").format(new Date());
//创建字符文件流
private FileWriter fw=null;
//创建字符缓冲流
private BufferedWriter bw=null;
/**
*
* @方法功能说明: 写文件的工具类
* @修改者名字:yang
* @修改日期 : 2015-11-4
* @参数: @param message
*/
public void info(String message){
String os=System.getProperty("os.name");
try {
/**
* 判断操作系统名称是windows
*/
if(os.startsWith("Windows")){
try {
//判断是否有C D E盘
if(new File(UrlInfo.PATH_CDEF_D).isDirectory()){
UrlInfo.GLOBALS_PATH=UrlInfo.PATH_CDEF_D;
}else if(new File(UrlInfo.PATH_CDEF_E).isDirectory()){
UrlInfo.GLOBALS_PATH=UrlInfo.PATH_CDEF_E;
}else if(new File(UrlInfo.PATH_CDEF_C).isDirectory()){
UrlInfo.GLOBALS_PATH=UrlInfo.PATH_CDEF_C;
}
File fi=new File(pathurl);
//判断mdlog目录是否存在
File fl=new File(UrlInfo.GLOBALS_PATH+"/mdlog/");
if(!fl.isDirectory()){
fl.mkdir();
}
//判断文件夹是否存在
if(!fi.isDirectory()){
//如果不存在,那么创建一个文件夹
fi.mkdir();
}
//true代表在原有基础上进行添加txt内容
this.fw=new FileWriter(pathurl+daytime+".log",true);
this.bw=new BufferedWriter(this.fw);
//写入信息内容
this.bw.write(time+":"+message+"\r\n");
//不用编码,只要统一了编码GBK那么就行
} catch (IOException e) {
this.bw.write("write daily error:"+"\r\n"+e.getMessage());
}finally{
this.bw.close();
this.fw.close();
}
}
/**
* 判断操作系统是linux系统
*/
else{
//设置linux下的全局变量
UrlInfo.GLOBALS_PATH="/usr/";
try {
File fi=new File(pathurl);
//判断文件夹是否存在
if(!fi.isDirectory()){
//如果不存在,那么创建一个文件夹
fi.mkdir();
}
//true代表在原有基础上进行添加txt内容20151104.log
this.fw=new FileWriter(pathurl+daytime+".log",true);
this.bw=new BufferedWriter(this.fw);
//写入信息内容
this.bw.write(time+":"+message+"\r\n");
//this.bw.write(time+":"+new String(b,UrlInfo.GLOBALS_UNICODE)+"\r\n");
} catch (IOException e) {
e.printStackTrace();
this.bw.write("write daily error:"+"\r\n"+e.getMessage());
}finally{
this.bw.close();
this.fw.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
*
* @方法功能说明: 获取当前月往前推一个月的日期
* @修改者名字:yang
* @修改日期 : 2015-11-8
* @修改内容 :
* @参数: int 多少月
* @return String
* @异常抛出:
*/
public int getForwardDate(int what){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Calendar cl = Calendar.getInstance();
cl.add(Calendar.MONTH, what);//从现在算,之前month个月
Date dateFrom = cl.getTime();
return Integer.parseInt(sdf.format(dateFrom));
}
}


二、定时删除一个月前的日志


LogListener.java



import java.io.File;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import web.md.util.LogUtil;
public class LogListener implements ServletContextListener{
private LogUtil logger=new LogUtil();

public void contextDestroyed(ServletContextEvent sce) {
}
public void contextInitialized(ServletContextEvent sce

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇深入理解 Spring 事务原理 下一篇Java解析和生成GSON串

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目