211004.《Learning Android中文版》學習筆記06.6

《Learning Android中文版》學習筆記06.6

6.6. Android的日志機制

Android擁有一套系統(tǒng)級的日志機制。在代碼的任何位置,都可以調(diào)用Log.d(TAG, message)來記錄日志椅亚。其中的TAG與message都是字符串寺枉。TAG是一個標志,通常按照應用的名稱鞠抑、類名控淡、模塊名取名字嫌吠。好習慣是,在類中專門為它定義一個常量掺炭,比如:

private static final String TAG = "StatusActivity";

Tip:
在編譯之前需要確保已經(jīng)import了Log類辫诅。有關import,Eclipse有個快捷功能可用涧狮,那就是選擇Source→Organize Imports或按下Ctrl+O炕矮,Eclipse即可自動組織代碼中的import語句么夫。但是對Log類來說有一點需要注意,那就是它的名字比較常見肤视,也就比較容易產(chǎn)生沖突档痪。這時就需要靠自己的直覺做選擇,辨認出正確的import語句邢滑。比如在這里腐螟,選擇Android Log類還是Apache Log類,是很明顯的事情困后。

日志擁有多個級別:.d()表示調(diào)試乐纸,.e()表示錯誤、.w()表示警告(warning)摇予、.i()表示信息(info)汽绢。有趣的是,還有個.wtf()表示“不該發(fā)生的錯誤”趾盐,它的字面意思是“What a Terrible Failure”。Eclipse會按照不同的顏色顯示不同級別的日志小腊。

(譯者注:在英文社區(qū)中救鲤,"WTF"是很常見的調(diào)侃用語,原意指"What The Fuck"秩冈。.wtf()這個方法可以視為Android框架的一個小幽默)

**Warning:

Eclipse的Organize Imports工具有時可能會造成難以查找的錯誤本缠。比如,有時你的工程還沒有生成R.java文件入问,Organize Imports工具就自動插入了一句import android.R丹锹,這是因為Android框架中也有個R類與你的R類重名。因此若看到R資源文件相關的編譯錯誤芬失,不妨檢查下是不是把android.R也給import了楣黍。**

6.6.1. LogCat

Android系統(tǒng)中的日志都是輸出到LogCat。它是一套標準的系統(tǒng)日志機制棱烂,可在Java或者C/C++中使用租漂。通過它,開發(fā)者可以閱讀/過濾程序中輸出的日志颊糜。在Android開發(fā)中哩治,訪問LogCat有兩種方式:通過Eclipse,或者通過命令行衬鱼。

6.6.2. 訪問LogCat:通過Eclipse的DDMS

在Eclipse中訪問LogCat业筏,需要打開LogCat View,如圖6.6. "Eclipse的LogCat"鸟赫,它一般在DDMS中蒜胖。單擊右上角的DDMS按鈕


image.png

消别,或者選擇菜單Window→Open Perspective→DDMS。

DDMS指Dalvik Debug Monitor Server翠勉,它可以將運行于設備上的應用程序與Eclipse這樣的開發(fā)環(huán)境連接起來妖啥。

圖 6.6. Eclipse的LogCat


Eclipse的LogCat

可以在LogCat中設置過濾規(guī)則。單擊綠色加號按鈕对碌,調(diào)出LogCat Filter對話框荆虱,然后就可以根據(jù)TAG、日志等級或進程id設置過濾規(guī)則了(如 圖6.7. "LogCat Filter")朽们。過濾所得的結果顯示在另一個窗口中怀读。

圖 6.7. LogCat Filter


image.png

Note:

如果你還沒有使用過DDMS,那么Eclipse的右上角可能會沒有它的按鈕骑脱。出現(xiàn)這種情況的話菜枷,可以訪問菜單Window→Open Perspective并選擇DDMS。隨后它的按鈕就會顯示出來了叁丧。

6.6.3. 訪問LogCat:通過命令行

同前面的所有工具無異啤誊,Eclipse中可以做的,在命令行中也同樣可以拥娄。訪問LogCat蚊锹,可以打開控制臺,輸入:

[user:~]> adb logcat

它可以顯示出LogCat的最新輸出稚瘾,并在收到新日志時實時更新牡昆。你也可以過濾日志,只是它的語法可能沒那么直觀摊欠。比如想查看標記為StatusActivity的日志條目丢烘,就用StatusActivity:作為過濾,其中的表示接受所有級別的日志些椒。當然也可以設置過濾將不希望見到的部分忽略播瞳,如*:S,表示不顯示其它標志的日志免糕。命令如下:

[user:~]> adb logcat StatusActivity:* *:S

Tip:

個人經(jīng)驗狐史,在開發(fā)中一直運行著一個adb logcat的命令行窗口是很有用的。這樣可以方便地跟蹤程序的狀態(tài)说墨,而且比起切換到Eclipse的DDMS界面骏全,這要快的多。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末尼斧,一起剝皮案震驚了整個濱河市姜贡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌棺棵,老刑警劉巖楼咳,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熄捍,死亡現(xiàn)場離奇詭異,居然都是意外死亡母怜,警方通過查閱死者的電腦和手機余耽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來苹熏,“玉大人碟贾,你說我怎么就攤上這事」煊颍” “怎么了袱耽?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長干发。 經(jīng)常有香客問我朱巨,道長,這世上最難降的妖魔是什么枉长? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任冀续,我火速辦了婚禮,結果婚禮上必峰,老公的妹妹穿的比我還像新娘洪唐。我一直安慰自己,他們只是感情好自点,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布桐罕。 她就那樣靜靜地躺著脉让,像睡著了一般桂敛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上溅潜,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天术唬,我揣著相機與錄音,去河邊找鬼滚澜。 笑死粗仓,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的设捐。 我是一名探鬼主播借浊,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼萝招!你這毒婦竟也來了蚂斤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤槐沼,失蹤者是張志新(化名)和其女友劉穎曙蒸,沒想到半個月后捌治,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡纽窟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年肖油,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片臂港。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡森枪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出趋艘,到底是詐尸還是另有隱情疲恢,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布瓷胧,位于F島的核電站显拳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏搓萧。R本人自食惡果不足惜杂数,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瘸洛。 院中可真熱鬧揍移,春花似錦、人聲如沸反肋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽石蔗。三九已至罕邀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間养距,已是汗流浹背诉探。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留棍厌,地道東北人肾胯。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像耘纱,于是被迫代替她去往敵國和親敬肚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容