packagecn.mucang.android.weizhanglib.data;importandroid.os.Environment;importandroid.text.format.DateFormat;importandroid.util.Log;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileWriter;importjava.io.PrintWriter;importjava.io.StringWriter;/***Createdbysanderson14-10-8.*/publicclassLoger{privatestaticStringTAG="LOGER";privatestaticFilelogFile=newFile(Environment.getExternalStorageDirectory().getAbsolutePath()+"/XiaoMiSiJi.log");privatestaticStringfmt="[%s]";privatestaticStringdf="yyyy-MM-ddkk:mm:ss";privatestaticFileWriterfw=null;privatestaticBufferedWriterbw=null;privatestaticStringWritersw=null;privatestaticPrintWriterpw=null;privatestaticbooleanlog=true;privatestaticbooleanwrite=true;static{try{if(write){if(!logFile.exists()){logFile.createNewFile();}if(fw==null){fw=newFileWriter(logFile,true);}if(bw==null){bw=newBufferedWriter(fw);}}}catch(Exceptione){Log.e(TAG,"初始化日志组建失败",e);write=false;}}publicstaticvoidwrite(Stringlogs){StringlogString=String.format(fmt,DateFormat.format(df,System.currentTimeMillis()).toString())+logs;try{bw.write(logString);bw.newLine();bw.flush();fw.flush();}catch(Exceptione){Log.e(TAG,"write()",e);write=false;}}publicstaticvoidwrite(Stringlog,Throwablethrowable){sw=newStringWriter();pw=newPrintWriter(sw);throwable.printStackTrace(pw);Stringerror=sw.getBuffer().toString();StringlogString=String.format(fmt,DateFormat.format(df,System.currentTimeMillis()).toString())+log+"==>"+error;try{bw.write(logString);bw.newLine();bw.flush();fw.flush();}catch(Exceptione){Log.e(TAG,"write()error",e);write=false;}finally{try{sw.close();pw.close();}catch(Exceptione){Log.e(TAG,"write()error",e);write=false;}sw=null;pw=null;}}publicstaticvoidi(Stringmsg){i(TAG,msg);}publicstaticvoidi(Stringtag,Stringmsg){if(log){Log.i(tag,msg);}if(write){write(msg);}}publicstaticvoidv(Stringmsg){v(TAG,msg);}publicstaticvoidv(Stringtag,Stringmsg){if(log){Log.v(tag,msg);}if(write){write(msg);}}publicstaticvoidd(Stringmsg){d(TAG,msg);}publicstaticvoidd(Stringtag,Stringmsg){if(log){Log.d(tag,msg);}if(write){write(msg);}}publicstaticvoidw(Stringmsg){w(TAG,msg);}publicstaticvoidw(Stringtag,Stringmsg){if(log){Log.w(tag,msg);}if(write){write(msg);}}publicstaticvoide(Stringmsg){e(TAG,msg);}publicstaticvoide(Stringtag,Stringmsg){if(log){Log.e(tag,msg);}if(write){write(msg);}}publicstaticvoide(Stringmsg,Throwablee){e(TAG,msg,e);}publicstaticvoide(Stringtag,Stringmsg,Throwablee){if(log){Log.e(tag,msg,e);}if(write){write(msg,e);}}//这个释放资源。若退出程序部在记录和打印日志则调用publicstaticvoidclose(){try{if(fw!=null){fw.close();fw=null;}if(bw!=null){bw.close();bw=null;}if(sw!=null){sw.close();sw=null;}if(pw!=null){pw.close();pw=null;}}catch(Exceptione){Log.e(TAG,"close()error",e);write=false;}}}


更多相关文章

  1. Android app集成友盟崩溃日志收集
  2. Android 编译流程解析01-AppPlugin初始化
  3. 自己实现android的日志框架
  4. Android开发6:日志信息输出
  5. android 软键盘隐藏 activity初始化时edittext聚焦
  6. Android中垃圾回收日志信息
  7. Android将需要的日志文件LOG记录到本地文件夹下指定的文件
  8. android读取日志demo

随机推荐

  1. Android(安卓)View的事件分发机制
  2. Dialog详解
  3. Android(安卓)架构组件之---LifeCycle 详
  4. 远程桌面协议(RDP)工具 FreeRDP
  5. Android:AndroidManifest.xml
  6. Android文本输入框EditText方法说明和属
  7. Tabhost+picture
  8. Android(安卓)布局优化之include与merge
  9. 【Tech-Android-View】Android中可以使用
  10. 第八章、理解Window和WindowManager