Log管理类LogUtils
packagecom.pzq.test.utils;importandroid.util.Log;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.util.HashMap;importandroid.os.Environment;importandroid.util.Log;importandroid.view.KeyEvent;importandroid.view.MotionEvent;/***Log统一管理类*Createdbyasuson2016/6/23.*/publicclassLogUtils{privateLogUtils(){/*cannotbeinstantiated*/thrownewUnsupportedOperationException("cannotbeinstantiated");}publicstaticbooleanisDebug=false;//是否需要打印bug,可以在application的onCreate函数里面初始化privatestaticfinalStringTAG="main...........";//下面四个是默认tag的函数publicstaticvoidi(Stringmsg){if(isDebug)Log.i(TAG,msg);}publicstaticvoidd(Stringmsg){if(isDebug)Log.d(TAG,msg);}publicstaticvoide(Stringmsg){if(isDebug)Log.e(TAG,msg);}publicstaticvoidv(Stringmsg){if(isDebug)Log.v(TAG,msg);}//下面是传入自定义tag的函数publicstaticvoidi(Stringtag,Stringmsg){if(isDebug)Log.i(tag,msg);}publicstaticvoidd(Stringtag,Stringmsg){if(isDebug)Log.i(tag,msg);}publicstaticvoide(Stringtag,Stringmsg){if(isDebug)Log.i(tag,msg);}publicstaticvoidv(Stringtag,Stringmsg){if(isDebug)Log.i(tag,msg);}/////////////////////////////////////////////////////////////////////////////////////////////////////////privatestaticfinalStringLOG_PATH=Environment.getExternalStorageState()+"/Didi";privatestaticLogUtilsInstance;privatestaticbooleandebug;privateLogUtil(){}publicstaticsynchronizedfinalLogUtilgetInstance(){if(sInstance==null){sInstance=newLogUtil();}returnsInstance;}publicstaticvoidsetDebugMode(booleanmode){debug=mode;}publicstaticvoidv(Stringtag,Stringmsg){if(debug){Log.v(tag,msg);}}publicstaticvoidw(Stringtag,Stringmsg){if(debug){Log.w(tag,msg);}}publicstaticvoidi(Stringtag,Stringmsg){if(debug){Log.i(tag,msg);}}publicstaticvoidd(Stringtag,Stringmsg){if(debug){Log.d(tag,msg);}}publicstaticvoide(Stringtag,Stringmsg){if(debug){Log.e(tag,msg);}}publicstaticvoide(Stringtag,Stringmsg,Throwabletr){if(debug){Log.e(tag,msg,tr);}}privatestaticHashMap<String,Integer>actionMap=newHashMap<String,Integer>();publicstaticvoida(Class<?>clazz,Stringmethod,MotionEventevent,Stringlog){a(clazz,method,event,log,true);}publicstaticvoida(Class<?>clazz,Stringmethod,MotionEventevent,Stringlog,booleanignoreDuplicate){if(!debug||event==null)return;intaction=event.getAction();StringcalssName=clazz==null?"":clazz.getSimpleName();Stringkey=calssName+method;Integeri=actionMap.get(key);intvalue=-10;if(i!=null)value=i;if(action!=value)actionMap.put(key,action);if(ignoreDuplicate&&action==value)return;StringBuildersb=newStringBuilder();sb.append("class:"+calssName);sb.append(TextUtil.isEmpty(calssName)?"":",method:"+method);sb.append(",action:"+getAction(action));sb.append(TextUtil.isEmpty(log)?"":",log:"+log);Log.d("ActionTracker",sb.toString());}publicstaticvoida(Class<?>clazz,Stringmethod,MotionEventevent){a(clazz,method,event,"");}publicstaticvoidk(Class<?>clazz,Stringmethod,intkeyCode,KeyEventevent){k(clazz,method,keyCode,event,"");}publicstaticvoidk(Class<?>clazz,Stringmethod,intkeyCode,KeyEventevent,Stringlog){if(!debug){return;}StringcalssName=clazz==null?"":clazz.getSimpleName();StringBuildersb=newStringBuilder();sb.append("class:"+calssName);sb.append(TextUtil.isEmpty(calssName)?"":",method:"+method);sb.append(",keycode:"+keyCode);if(event!=null){intaction=event.getAction();sb.append(",action:"+getAction(action));}sb.append(TextUtil.isEmpty(log)?"":",log:"+log);Log.d("KeyEventTracker",sb.toString());}publicstaticStringgetAction(intaction){switch(action){caseMotionEvent.ACTION_CANCEL:return"ACTION_CANCEL";caseMotionEvent.ACTION_UP:return"ACTION_UP";caseMotionEvent.ACTION_DOWN:return"ACTION_DOWN";caseMotionEvent.ACTION_MOVE:return"ACTION_MOVE";caseMotionEvent.ACTION_OUTSIDE:return"ACTION_OUTSIDE";//caseMotionEvent.ACTION_SCROLL://return"ACTION_SCROLL";}returnnull;}publicstaticvoidclearCache(){FilelogFile=newFile(LOG_PATH+"/log4pad.txt");if(logFile.exists()){logFile.delete();}}publicstaticvoidwriteToCache(Stringfilter,Stringmsg){if(msg.contains(filter)){FileOutputStreamfos=null;try{FilelogFile=newFile(LOG_PATH);if(!logFile.exists()){logFile.mkdirs();}fos=newFileOutputStream(logFile+"/log4pad.txt",true);fos.write(msg.getBytes());fos.write("\n\r".getBytes());fos.flush();}catch(FileNotFoundExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}finally{if(fos!=null){try{fos.close();}catch(IOExceptione){e.printStackTrace();}fos=null;}}}}publicstaticvoidtrace(){StackTraceElement[]traces=Thread.currentThread().getStackTrace();for(StackTraceElementstackTraceElement:traces){LogUtil.d("Trace",stackTraceElement.toString());}}}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。