我們都知道android中l(wèi)og是這么寫的:
Log.d(TAG, "This is a debug log");
我們?cè)谡{(diào)試的時(shí)候經(jīng)常會(huì)輸出這行代碼,這個(gè)方法有兩個(gè)參數(shù),一個(gè)是TAG,一個(gè)是真正要輸出的內(nèi)容。我們不愿意每次花費(fèi)時(shí)間去思考應(yīng)該定義什么TAG,我們希望有一個(gè)東西可以幫我們定義好TAG,我們只需要寫正真有意義的內(nèi)容就行。這才是程序員思維,而不是程序猿思維。其實(shí)就是這樣一個(gè)東西:
Log.d("This is a debug log");
如果我們更“懶”(懶在這里是褒義詞),可能會(huì)希望這樣寫:
L.d("This is a debug log");
等等!是不是還能更進(jìn)一步,我希望終端輸出的log更加美觀,并且輸出的地方是可以有一個(gè)超鏈接,這樣我們直接點(diǎn)擊輸出內(nèi)容的超鏈就可以直接定位到具體的代碼中了。
D/LoggerActivity﹕ ╔══════════════════════════════════════════════════════════
D/LoggerActivity﹕ ║ Thread: main
D/LoggerActivity﹕ ╟──────────────────────────────────────────────────────────
D/LoggerActivity﹕ ║ BaseActivity.onCreate (BaseActivity.java:32)
D/LoggerActivity﹕ ║ LoggerActivity.setViews (LoggerActivity.java:26)
D/LoggerActivity﹕ ╟──────────────────────────────────────────────────────────
D/LoggerActivity﹕ ║ This is a debug log
D/LoggerActivity﹕ ╚══════════════════════════════════════════════════════════
對(duì)了,我還希望log能幫我們優(yōu)雅的打印出map、list、json、array等Object對(duì)象,而不用我們?nèi)プ约浩唇印?/p>
D/LoggerActivity﹕ ╔══════════════════════════════════════════════════════════
D/LoggerActivity﹕ ║ Thread: main
D/LoggerActivity﹕ ╟──────────────────────────────────────────────────────────
D/LoggerActivity﹕ ║ BaseActivity.onCreate (BaseActivity.java:32)
D/LoggerActivity﹕ ║ LoggerActivity.setViews (LoggerActivity.java:38)
D/LoggerActivity﹕ ╟──────────────────────────────────────────────────────────
D/LoggerActivity﹕ ║ String[5] {
D/LoggerActivity﹕ ║ [android, ios, wp, linux, window]
D/LoggerActivity﹕ ║ }
D/LoggerActivity﹕ ╚══════════════════════════════════════════════════════════
哦,還有。我不希望在release包中出現(xiàn)log,但懶得自己整天設(shè)置log的開關(guān),能不能自動(dòng)化。但有時(shí)候我們一些東西還必須在release包中調(diào)試,比如需要簽名的微信登錄SDK。我希望能加個(gè)強(qiáng)制顯示log的開關(guān),一旦開啟無論如何都顯示log信息。
// 定義是否是強(qiáng)制顯示log的模式
protected static final boolean LOG = false;
更多建議: