標籤:android message logcat warning error
做Android開發的一個重要的工具就是locat,這是代碼調試,出錯排除定位等必不可少的工具,也是習以為常的,
首先我就來先說一下log吧。
它屬於android.util.log類。常用的列印日誌的方法有5個如下
:
Log.v(tag,message) ; //verbose模式,列印最詳細的資訊
Log.d(tag,message) ; //debug模式,列印調試的資訊
Log.i(tag,message) ; //info
Log.w(tag,message) ; //warning ,列印警告的資訊
Log.e(tag,message) ; //error ,列印錯誤資訊
其中 tag 為調試資訊標籤名稱,也就是logcat的過濾標籤,
message也就是調試的時候列印的資訊,
輸出資訊層級 error> warn > info >debug> verbose(可作為篩選資訊的參考)。
好了介紹完這些,那麼問題來了(^_^)
每次想調試都要寫一句什麼 Log.v("tag","調試....");然後再過濾 tag,要是一個應用那麼多的類這樣每次都寫著一句話會不會很煩?同時應用發布的時候要一句一句的隱藏掉這些log,更煩。
那麼 我們可以考慮這麼寫:
直接寫一個Log工具類:
public class MyLog {
static boolean state = true;// 如果要發布應用,直接改掉 state =false就不會有日誌輸出。
public static void d( String str){
if(state){
Log.i("n你的應用程式名稱:" , str);
}
}
}
那麼這樣的話每次調用MyLog.d(String str)方法就可以了,同時一個應用在Logcat的過濾器裡之寫一個Tag 然後你的應用的整個log都會出來,是不是方便很多,而且偵錯模式的時候state改為true,就會有日誌,發布的時候改為false所有日誌就會隱藏,會不會方便很多。
如果說這樣分辨不清楚是一個應用中哪個類的日誌,那麼有更好的方法:
public
class
MyLog {
/**
* 是否開啟debug
*/
public
static
boolean
isDebug=
true
;
public
static
void
d(Class<?> clazz,String msg){
if
(isDebug){
Log.e(clazz.getSimpleName(),msg+
""
);
}
}
}
這個類比上面的那個更加好用,學過java的人都知道 clazz.getSimpleName()的作用是得到類的簡體名稱。那麼這也更方便的區分了是哪個類的日誌,更方便更清晰。
好了,到這裡就應該結束了,本來log就是很簡單的東西,我這裡羅裡吧嗦的說了這麼多,其實也就是說寫代碼我們必須要種能省就省,記憶體能省就省,在看得懂的前提下代碼量能省就省,,做一個環保的程式猿。
本文出自 “知行合一” 部落格,請務必保留此出處http://poarry.blog.51cto.com/5970996/1570742
Android中的管理工具類log可以這麼些.....