使用Java代码书写日志的工具类

下面的一个Java代码工具类是用于书写日志信息到指定的文件,并且具有删除之前日志文件的功能。

package com.teligen.eos.teleCode;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;

/**
 * 书写日志信息到指定的文件中
 * @author lanp
 * @since 2012-10-17 15:15:24
 */
public class WriteLogUtil {

	private static String rootPath = "D:\\logs\\";
	
	/**
	 * 将信息写到文件中
	 * @param msg
	 */
	public static void writeMsgToFile(String msg) {
		//删除之前的文件
		delOldFile();
		
		FileWriter fileWriter = null;
		try {
			fileWriter = new FileWriter(getFileName(),true);
			Date today = new Date();
			String time = String.valueOf(today.getHours()) + ":" + String.valueOf(today.getMinutes()) + " " + String.valueOf(today.getSeconds());
			fileWriter.write("#" + time + "# [" + msg + "]" + "\r\n");
			fileWriter.flush();
		} catch (IOException e) {
			System.out.println("### 写日志到文件异常 ### >>> " + e.getMessage());
			e.printStackTrace();
		} finally {
			try {
				fileWriter.close();
			} catch (IOException e) {
				System.out.println("### 关闭写日志的流异常 ### >>> " + e.getMessage());
				e.printStackTrace();
			}
		}
	}
	
	/**
	 * 删除之前的日志文件
	 */
	private static void delOldFile() {
		Date today = new Date();
		int month = today.getMonth()+1;
		month = month - 2;
		if(month == -1)	month = 11;
		if(month == 0)	month = 12;
		String delPath = rootPath + String.valueOf(month) + "\\";
		File folder = new File(delPath);
		if(folder.exists()) {
			File[] files = folder.listFiles();
			for(int i=0; i<files.length; i++) {
				files[i].delete();
			}
		}
	}
	
	/**
	 * 获取要保存的文件
	 * @return fileName
	 */
	private static String getFileName() {
		Date today = new Date();
		String fileName = String.valueOf((today.getYear()+1900)) + String.valueOf((today.getMonth()+1)) + String.valueOf(today.getDate()) + ".log";
		
		
		//创建目录
		File folder = new File(rootPath + String.valueOf((today.getMonth()+1)) + "\\");
		if(!folder.exists()) {
			folder.mkdirs();
		}
		//创建文件
		File file = new File(fileName);
		if(!file.exists()) {
			try {
				file.createNewFile();
			} catch (IOException e) {
				System.out.println("### 新建日志文件异常 ### >>> " + e.getMessage());
				e.printStackTrace();
			}
		}
		
		fileName = rootPath + String.valueOf((today.getMonth()+1)) + "\\" + fileName;
		
		return fileName;
	}
	
	/**
	 * 测试使用的main方法
	 */
	public static void main(String[] args) {
		//getFileName();
		String testString = "写日志咯:71FABB7890D2CC0D267FBD84F409618C0303BC597B9244C324947BDE4B1C0B4CB08C33FC461F7BADD088535DAE42D8D7D06F4134E442D9D1CE3A0F9B3EDD64337A2D18CE34FCDC137B7CBD84F409618C03038FEAEC79F79C2F58BD84F409618C03038FEAEC79F79C2F58BD84F409618C03038FEAEC79F79C2F581790ACB3C178641D14D8C09905BC52CF1C8249B12F2EDE5AC3C8FAF2FD8A686E";
		writeMsgToFile(testString);
		//delOldFile();
	}

}


OK,TKS!

猜你喜欢

转载自blog.csdn.net/lanpiao_87/article/details/8087034