JAVA中自定义日志输出到指定文件

创建一个类,以便调用方法,类名自定义,我这里定义类名是: WrittenLog

1.定义一个固定的路径:

private static final String fileXml = "C:/Users/zhangjie/Desktop/loger/loger";

2.定义一个字符串写入的方法,其中有两个参数,一个是绝对路径(fileXml),一个是传入的字段串(context)

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.StringReader;
import java.io.Writer;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.xml.sax.InputSource;
//把参数写入日志文件
	private void logger (String context,String fileXml) throws IOException{
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String trace = sdf.format(new Date().getTime());定义一个系统时间
		File file = new File(fileXml);
		if (!file.exists()) {检测是否有logger.TXT文件
			file.mkdir();
		}
		
		String path = file+".txt";
		File writeFile = new File(path);
		if (!writeFile.exists()) {检测是否在该路径下有logger文件夹
			writeFile.createNewFile();
			writeFile = new File(path);
		}
		FileOutputStream fw = new FileOutputStream(writeFile,true);
		Writer out = new OutputStreamWriter(fw,"UTF-8");设置字符集编码格式
		out.write(trace+"----"+context);
		String newFile = System.getProperty("line.separator");
		out.write(newFile);
		out.close();
	        fw.flush();
		fw.close();
                下列是xml格式的参数匹配,如果是json格式参数无需下列代码
		Pattern p = Pattern.compile(">(\\s*|\n|\t|\r)<");  
		Matcher m = p.matcher(response);  
		String returnxml = m.replaceAll("><");  
	    DocumentBuilderFactory builderFactory =         DocumentBuilderFactory.newInstance();
		Document doc = null;
		DocumentBuilder builder = builderFactory.newDocumentBuilder();
		if(returnxml!=null){
			StringReader sr = new StringReader(returnxml);
			InputSource is = new InputSource(sr);
			doc = builder.parse(is);
		}else{
			throw new Exception("没有收款单数据传入!");
		}
	}

3.创建实例,调用方法:

           WrittenLog write = new WrittenLog();

            write.logger(context,fileXml);

猜你喜欢

转载自blog.csdn.net/a754315344/article/details/90517669