Android 好用Log日志庫(kù)分享

Logcat

這是一個(gè)Android 上 效率極高的 Log 工具,主要功能為控制不同級(jí)別的Log輸出,Log信息保存到文件、打印行號(hào)龙助、函數(shù)調(diào)用、Json解析频祝、點(diǎn)擊跳轉(zhuǎn)泌参、多標(biāo)簽Tag 支持無(wú)限長(zhǎng)字符串打印,無(wú)Logcat4000字符限制等功能

打印行號(hào)常空、函數(shù)調(diào)用沽一、Json解析、點(diǎn)擊跳轉(zhuǎn) 參照KLog of ZhaoKaiQiang.


Gradle

dependencies {
    implementation 'com.github.iflove:Logcat:v2.0.0'
}

1.開(kāi)始使用 Logcat

你只需要在 Application 里面調(diào)用Logcat.initialize一次即可完成初始化

//初始化Logcat
Logcat.initialize(this);

配置更多信息

Builder builder = Logcat.newBuilder();
builder.topLevelTag("Root");
//設(shè)置Log 保存的文件夾
builder.logSavePath(StorageUtils.getDiskCacheDir(this, "log"));
//設(shè)置輸出日志等級(jí)
if (BuildConfig.DEBUG) {
  builder.logCatLogLevel(Logcat.SHOW_ALL_LOG);
} else {
  builder.logCatLogLevel(Logcat.SHOW_INFO_LOG | Logcat.SHOW_WARN_LOG | Logcat.SHOW_ERROR_LOG);
}
//設(shè)置輸出文件日志等級(jí)
builder.fileLogLevel(Logcat.NOT_SHOW_LOG);
Logcat.initialize(this, builder.build());

2.示例

//控制臺(tái)
Logcat.v("The is verbose log");
Logcat.d("The is debug log");
Logcat.i("The is info log");
Logcat.w("The is warn log");
Logcat.e("The is error log");

3.LogTransaction 為L(zhǎng)ogcat 提供靈活的鏈?zhǔn)秸{(diào)用api

msg(@NonNull final Object msg);// 打印 msg
msgs(@NonNull final Object... msg);// n ... msg
tag(@NonNull final String tag);// 打印 tag
tags(@NonNull final String... tags); //n ... tag
file(); // log默認(rèn)輸出到文件
file(@NonNull final String fileName); //指定文件名
ln(); //換行
format(@NonNull final String format, Object... args); //格式化
out(); //輸出log

4.Logcat log 文件

--默認(rèn)log文件夾 sdcard/Android/data/you.pakeage/cache/logs 下

//文件log 格式
11-29 22:25:32.363 5523-1/com.lazy.logging V/Logcat[ (MainActivity.java:104)#PrintLog ] output file msg 

5.JLog

安卓開(kāi)發(fā)者都知道漓糙,Android系統(tǒng)的單條日志打印長(zhǎng)度是有限的, 底層Logger Logger.h 文件中限制了輸出日志字符的大小铣缠,具體原因就不造了。

Logger.h

#define LOGGER_ENTRY_MAX_LEN        (4*1024)  
#define LOGGER_ENTRY_MAX_PAYLOAD    \\  
    (LOGGER_ENTRY_MAX_LEN - sizeof(struct logger_entry))

開(kāi)發(fā)也沒(méi)法子通過(guò)API來(lái)改變這一值昆禽。只能采取分段打印的辦法輸出日志信息蝗蛙。但是我發(fā)現(xiàn)了Java 的System.out.println() 是沒(méi)有限制的,但是在安卓平臺(tái)上這會(huì)轉(zhuǎn)變?yōu)榘沧縄NFO 級(jí)的日志醉鳖,而且無(wú)需你分段打印的輸出日志(是不是很??)捡硅。在實(shí)際項(xiàng)目中,一般就也只有請(qǐng)求HTTP接口盗棵,而接口又是返回一個(gè)比較大JSON壮韭,超過(guò)4000 字符北发,安卓的Log API 就好截?cái)啵蜔o(wú)法看到完整的響應(yīng)數(shù)據(jù)了喷屋。采取分段輸出琳拨,雖然能看到完整的響應(yīng)數(shù)據(jù),但是每達(dá)4000字符時(shí)突然的換行以及不對(duì)齊屯曹,稍微不慎就會(huì)拷錯(cuò)狱庇,拷多json 字符串處理用工具解析查看。當(dāng)然每次調(diào)試看請(qǐng)求數(shù)據(jù)也是可以的不過(guò)很是低效的恶耽。所以我做了個(gè)大膽的嘗試(加入JLog)密任,通過(guò) socket 把日志傳送到Java的控制中打印。

JLogServer

Run JLogServer 步驟: 下載JLogServer.java 到你的項(xiàng)目,用as 直接run main(),JLogServer 可以配置相應(yīng)的端口驳棱,也可以用adb 端口映射批什。

20181129-0.png

Logcat dispatchLog

...
builder.dispatchLog(new JLog("192.168.3.15", 5036));

6.Future

JLogServer.java 是否能作為一個(gè)idea intellij plugin ?

7.Sample Usage

ScreenShot-2017-12-05.png

超長(zhǎng)的Log完美輸出

20181129-1.png

json format 輸出格式


Jietu20181129-223652.jpg

文件Log輸出格式


20181129-3.png

License

Copyright  2016 Lazy

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About me
Email: 13532605287@163.com

歡迎掃一掃农曲!


11547476583_.pic.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末社搅,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子乳规,更是在濱河造成了極大的恐慌形葬,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暮的,死亡現(xiàn)場(chǎng)離奇詭異笙以,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)冻辩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)猖腕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人恨闪,你說(shuō)我怎么就攤上這事倘感。” “怎么了咙咽?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵老玛,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我钧敞,道長(zhǎng)蜡豹,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任溉苛,我火速辦了婚禮镜廉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘愚战。我一直安慰自己娇唯,他們只是感情好威根,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著视乐,像睡著了一般洛搀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上佑淀,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天留美,我揣著相機(jī)與錄音,去河邊找鬼伸刃。 笑死谎砾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的捧颅。 我是一名探鬼主播景图,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼碉哑!你這毒婦竟也來(lái)了挚币?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤扣典,失蹤者是張志新(化名)和其女友劉穎妆毕,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體贮尖,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡笛粘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了湿硝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片薪前。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖关斜,靈堂內(nèi)的尸體忽然破棺而出示括,到底是詐尸還是另有隱情,我是刑警寧澤蚤吹,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布例诀,位于F島的核電站,受9級(jí)特大地震影響裁着,放射性物質(zhì)發(fā)生泄漏繁涂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一二驰、第九天 我趴在偏房一處隱蔽的房頂上張望扔罪。 院中可真熱鬧,春花似錦桶雀、人聲如沸矿酵。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)全肮。三九已至敞咧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間辜腺,已是汗流浹背休建。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留评疗,地道東北人测砂。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像百匆,于是被迫代替她去往敵國(guó)和親砌些。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,745評(píng)論 25 707
  • 用兩張圖告訴你加匈,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料存璃? 從這篇文章中你...
    hw1212閱讀 12,699評(píng)論 2 59
  • 作者簡(jiǎn)介:ASCE1885, 《Android 高級(jí)進(jìn)階》作者矩动。本文由于潛在的商業(yè)目的有巧,未經(jīng)授權(quán)不開(kāi)放全文轉(zhuǎn)載許可...
    asce1885閱讀 2,008評(píng)論 0 38
  • 一:引用類(lèi)型有哪些?非引用類(lèi)型有哪些 引用類(lèi)型值(對(duì)象悲没、數(shù)組、函數(shù)男图、正則):指的是那些保存在堆內(nèi)存中的對(duì)象示姿,變量中...
    osborne閱讀 200評(píng)論 0 0
  • 今天是身為引渡人的第二天 起初還是會(huì)有一些與人有關(guān)的小問(wèn)題 一邊工作一邊輔導(dǎo)一邊解決其他問(wèn)題 我居然還能這樣做 現(xiàn)...
    ku123oop閱讀 221評(píng)論 0 1