读书人

软件中log日记的创建_小小测试

发布时间: 2012-08-16 12:02:16 作者: rapoo

软件中log日志的创建_小小测试
知足常乐
Log工具类:

package com.zzl.test;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import android.util.Log;/** * Created by zzl * Date: 2012-03-03 * 记录log日志文件的工具类 */ public class LogTool {private static LogTool instance;    private PrintWriter logPrint;    private String logFile = "";    private String taskNo = "";//任务号private String rootDir = "/sdcard/SGWS/log";//日记文件为sdcard/SGWS/任务号/日志文件    /**     * 配置没有头的log    */    private LogTool(){        checkDate();//检查日期如果改变新建log文件    }     public static LogTool getInstance() {if (instance == null) {instance = new LogTool();}return instance; }    /**     * 配置log文件名的头    */    public LogTool(String logName){        checkDate();    }     /**     * 将java.util.Date格式转换为字符串格式”yyyy-MM-dd HH:mm:ss“     * 如Sat May 11 17:24:21 CST 2002 to '20002-05011 17:24:21'       * @param time Date日期     * @return字符串     */    public String dateToString(Date time){    SimpleDateFormat formatter;    formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    String ctime = formatter.format(time);    return ctime;    }    /**     * 得到log文件名    */    private String getLogFile(){        String date = "";        Calendar cd = Calendar.getInstance();        int y = cd.get(Calendar.YEAR);        int m = cd.get(Calendar.MONTH) + 1;        int d = cd.get(Calendar.DAY_OF_MONTH);        /* if(null==taskNo || "".equals(taskNo)){        date = rootDir+"log/" + logName + y + "-";         }else{        date = rootDir+taskNo+"/log/" + logName + y + "-";         }*/        date = rootDir+"/"+ y + "-";         if(m < 10)            date += 0;         date += m + "-";         if(d < 10)            date += 0;         date += d + ".log";         return date;    }     /**     * 配置log属性,如果没有新建log文件    */    private void newLog(){        logFile = getLogFile();//创建log文件名         try{        File filePath = new File(rootDir);        if(!filePath.exists()){        filePath.mkdirs();        }        File file = new File(logFile);        if(!file.exists()){        file.createNewFile();        }        //(new File(logFile)).mkdir();             logPrint = new PrintWriter(new FileWriter(logFile, true), true);        }catch(IOException e){        File filePath = new File(rootDir);        if(!filePath.exists()){        filePath.mkdirs();        }        File file = new File(logFile);        if(!file.exists()){        try {file.createNewFile();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}        }                        try{                logPrint = new PrintWriter(new FileWriter(logFile, true), true);            }catch(IOException ex){                System.err.println("无法打开日志文件:" + logFile);                logPrint = new PrintWriter(System.err);            }        }    }     /**     * 检查日期如果改变新建log文件    */    private void checkDate(){    Log.e("LogTool.checkDate()文件名:", logFile);        if(logFile == null || logFile.trim().equals("") || !logFile.equals(getLogFile())){            newLog();        }    }     /**     * 将文本信息写入日志文件,缺省为userdir/log    */    public void log(String msg) {    //this.taskNo = taskNo;        checkDate();        logPrint.println(dateToString(new Date()) + "\t" + msg+"\r\n");        logPrint.close();    }     /**     * 将文本信息与异常写入日志文件    */    public void log(Throwable e, String msg) {    //this.taskNo = taskNo;        checkDate();        logPrint.println(dateToString(new Date()) + "\t" + msg+"\r\n");        e.printStackTrace(logPrint);        logPrint.close();    }}


Activity中调用:
package com.zzl.test;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                Button btn = (Button) findViewById(R.id.button1);                btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {LogTool.getInstance().log("MainActivity.onCreate.btn.OnClickListener");}});    }}


即的权限的添加,ok !

读书人网 >移动开发

热点推荐