摘要:
前幾天伊履,終于買到了期待已久的《第一行代碼》(第2版)蓖宦。但因工作太忙了宵呛,一直沒時間看篙悯。元旦這兩天終于有時間看了蚁阳,卻沒想到剛上來就踩到坑了......
Log級別簡介
相信用過Log日志工具的Android程序員都知道,Log的打印級別有5個鸽照,分別是:
- verbose(瑣碎級別)
- debug(調(diào)試級別)
- info(信息級別)
- warn(警告級別)
- error(錯誤級別)
問題引入
看到書中介紹了有關(guān)Log的快捷輸入螺捐,之前沒有使用過,就忍不住嘗試了一下矮燎,下方是完成后的測試代碼:
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.v(TAG, "onCreate: ");
Log.d(TAG, "onCreate: ");
Log.i(TAG, "onCreate: ");
Log.w(TAG, "onCreate: ");
Log.e(TAG, "onCreate: ");
}
}
估計各位看到這樣的代碼定血,大腦不用轉(zhuǎn)就知道會輸出什么了。
然后我們運(yùn)行下程序诞外,看看是不是和你想的一樣澜沟。(看下方輸出結(jié)果)
看到這樣的日志信息,相信很多人和我的反應(yīng)一樣『納尼…(⊙_⊙)峡谊?茫虽??』
我們的調(diào)試級別已經(jīng)是Verbose了既们,為什么只有兩條日志信息濒析,不應(yīng)該是5條嗎?
調(diào)試結(jié)果分析
從Android Monitor信息欄中啥纸,我們可以得到的信息:
- 測試機(jī)型號:QiKU 8681-M02
- 系統(tǒng)版本:Android 5.1(API 22)
- 調(diào)試級別:Verbose
-
Log日志信息:
- ...... W/MainActivity: onCreate:(Warn級別日志信息)
- ...... E/MainActivity: onCreate:(Error級別日志信息)
從這樣的信息中我們只能分析出打印了Warn級別和Error級別的日志信息号杏,其他好像也分析不出什么東西。那換成Android模擬器再試試......
換成模擬器后卻驚奇的發(fā)現(xiàn)5條日志信息都打印出來了斯棒。那看來問題的原因應(yīng)該是出在手機(jī)上了盾致。
尋找解決辦法
之后,blogger通過在網(wǎng)上查閱資料荣暮,終于找到了針對『奇酷360手機(jī)』日志級別的設(shè)置方法:
需要在手機(jī)撥號界面輸入 *20121220#庭惜,進(jìn)入工程模式,對Log打印級別進(jìn)行設(shè)置(如下圖所示):
設(shè)置成LOGV級別后渠驼,再用手機(jī)跑一下程序蜈块,發(fā)現(xiàn)已經(jīng)能正常打印了,如下圖所示:
問題拓展與思考
對于這個問題迷扇,我只能說我的手機(jī)已經(jīng)解決了百揭,但還是要對看博客的各位給些細(xì)節(jié)補(bǔ)充:
- 在網(wǎng)上查閱資料的時候,發(fā)現(xiàn)部分華為蜓席、小米器一、酷派等手機(jī)也有這個問題,有這些手機(jī)的朋友可以試試厨内。
- 另外祈秕,這也讓我想起一件事:幾個月前渺贤,有位同事的手機(jī)一行日志也打印不出來,最后認(rèn)為是手機(jī)壞了请毛,不知道有沒有朋友也遇到過這樣的問題志鞍。接下來,各位再細(xì)心的看看上面的動態(tài)gif圖方仿,留意一下這個選項(xiàng):Log print enable(工程模式二級頁面的第1個選項(xiàng))固棚,這個選項(xiàng)如果設(shè)置成Disable,那就真的一行日志都打印不出來了仙蚜。
- 看來此洲,這個問題是由于手機(jī)廠商在生產(chǎn)手機(jī)后進(jìn)行了一系列默認(rèn)設(shè)置造成的。這樣設(shè)置Log的原因應(yīng)該在于減少不必要的日志信息打印委粉,提高系統(tǒng)運(yùn)行效率呜师。當(dāng)然,這只是個人推測贾节,有知道原因的小伙伴可以在評論區(qū)留言汁汗,我們一起討論討論...O(∩_∩)O~
- 最后,提醒一句氮双,如果手機(jī)關(guān)機(jī)或重啟碰酝,我們之前的Log設(shè)置會被系統(tǒng)重置霎匈,需要去重新設(shè)置Log的打印級別戴差。