分享一个Android日志记录的工具类
16lz
2021-01-23
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;}}}
更多相关文章
- Android app集成友盟崩溃日志收集
- Android 编译流程解析01-AppPlugin初始化
- 自己实现android的日志框架
- Android开发6:日志信息输出
- android 软键盘隐藏 activity初始化时edittext聚焦
- Android中垃圾回收日志信息
- Android将需要的日志文件LOG记录到本地文件夹下指定的文件
- android读取日志demo