日志記錄框架

版本 v1.0.0
已完成:業(yè)務(wù)日志徘六、通用日志剖淀、錯誤日志可以正常使用
待完善:Action日志當前頁面功能、本地存儲的上傳規(guī)則

框架功能簡介

image

使用

在需要使用的module的gradle中添加:

compile 'com.moment:logconverge:1.0.0'

日志框架入口初始化(在Application的onCreate方法中初始化):
在Application中添加代理:

LogApplicationProxy.getProxy().onCreate(this);   
LogApplicationProxy.getProxy().onTrimMemory(level);   
LogApplicationProxy.getProxy().onLowMemory();   
LogApplicationProxy.getProxy().onTerminate();   
LogApplicationProxy.getProxy().onConfigurationChanged(newConfig);   
初始化:   
LogConverge.Builder builder = new LogConverge
                .Builder()
                /**
                 * 設(shè)置日志記錄級別,日志級別分為(ACTION,EXCEPTION,ALL,NONE)
                 * 通用日志和業(yè)務(wù)日志默認開啟
                 */
                .setLogLevel(LogConverge.ShowLevel.ALL)
                .setChannel(Constant.channel)
                /**
                 * 設(shè)置日志解析格式
                 * JSON
                 * Sting
                 */
                .setParseType(ParseType.JSON)
                /**
                 * 設(shè)置日志打印方式
                 * LOGCAT
                 * Toast
                 */
                .setPrintType(PrintType.LOGGCAT)
                /**
                 * 設(shè)置日志持久化方式
                 * 文件
                 * 數(shù)據(jù)庫
                 */
                .setCacheType(CacheType.DATABASE);
        //日志框架初始化入口
        LogConverge.init(builder, this);

Action日志初始化
在Fragment(需要日志記錄的頁面雷猪,一般為BaseFragment)中添加代理:

LogProxy.create().onFragmentHiddenChanged(hidden, this.javaClass.simpleName)
LogProxy.create().onFragmentResume()
LogProxy.create().onFragmentPause()
 

業(yè)務(wù)日志使用方法

Map<String,Object> map = new HashMap<String,Object>();
map.put("業(yè)務(wù)名稱", "業(yè)務(wù)數(shù)據(jù)")
LogConverge.create().log(map)

框架詳情解析

業(yè)務(wù)日志(BusinessLog)

根據(jù)業(yè)務(wù)需求添日志記錄.
數(shù)據(jù)結(jié)構(gòu):Map<String, Object>
調(diào)用方法:LogConverge.log(Map<String, Object> logs)

{
  "businessLog": {
    "name": "moment",
    "gender": "male",
    "age": 17
  }
}

通用日志(CommonLog)

框架自動記錄,日志字段分別為:
設(shè)備廠商(devicebrand)
系統(tǒng)版本號(sysversion)
設(shè)備唯一標識(uuid)
應(yīng)用版本(appversion)
應(yīng)用渠道(channel)
最大分配內(nèi)存(memorysize)

{
  "appversion": "1.0.0",
  "channel": "xiaomi",
  "deviceBrand": "Xiaomi",
  "memorysize": "256M",
  "sysversion": "7.1.1",
  "uuid": "XXXX-XXXX-XXX-XXX-XXXXXXXX"
}

錯誤日志(ExceptionLog)

錯誤日志分為客戶端異常和網(wǎng)絡(luò)異常
客戶端異常由框架自動記錄
網(wǎng)絡(luò)異常需用戶調(diào)用方法LogConverge.logNetError(String log)方法實現(xiàn)

{
  "error": {
    "clientError": "Attempt to invoke a virtual method on a null object reference case:java.lang.NullPointerException: Attempt to invoke a virtual method on a null object reference"
  }
}

ACTION日志(ActionLog)

框架自動記錄晰房,日志字段分別為:
當前頁面(currentPage)
上一頁面(previousPage)
進入時間(enterTime)
退出時間(exitTime)
前一頁面停留時間(spendTime)
{
  "currentPage": "TestActivity",
  "enterTime": 1516076541468,
  "exitTime": 1516076630131,
  "previousPage": "MainActivity_MainFragment",
  "spendTime": "0h1m28s"
}

混淆如下

-keep class com.moment.logconverge.entity.**{*;}

-dontwarn com.moment.logconverge.entity.**

-keep class org.litepal.** {
    *;
}

-keep class * extends org.litepal.crud.DataSupport {
    *;
}

源代碼地址:
https://github.com/momentslz/logconverge

Thanks

JSON解析:fastjson
數(shù)據(jù)庫存儲:litepal

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末求摇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子殊者,更是在濱河造成了極大的恐慌与境,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件猖吴,死亡現(xiàn)場離奇詭異摔刁,居然都是意外死亡,警方通過查閱死者的電腦和手機海蔽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門共屈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人准潭,你說我怎么就攤上這事趁俊。” “怎么了刑然?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵寺擂,是天一觀的道長。 經(jīng)常有香客問我泼掠,道長怔软,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任择镇,我火速辦了婚禮挡逼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘腻豌。我一直安慰自己家坎,他們只是感情好,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布吝梅。 她就那樣靜靜地躺著虱疏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪苏携。 梳的紋絲不亂的頭發(fā)上做瞪,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機與錄音,去河邊找鬼装蓬。 笑死著拭,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的牍帚。 我是一名探鬼主播儡遮,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼履羞!你這毒婦竟也來了峦萎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤忆首,失蹤者是張志新(化名)和其女友劉穎爱榔,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體糙及,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡详幽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了浸锨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片唇聘。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖柱搜,靈堂內(nèi)的尸體忽然破棺而出迟郎,到底是詐尸還是另有隱情,我是刑警寧澤聪蘸,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布宪肖,位于F島的核電站,受9級特大地震影響健爬,放射性物質(zhì)發(fā)生泄漏控乾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一娜遵、第九天 我趴在偏房一處隱蔽的房頂上張望蜕衡。 院中可真熱鬧,春花似錦设拟、人聲如沸慨仿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽镰吆。三九已至,卻和暖如春躲雅,著一層夾襖步出監(jiān)牢的瞬間鼎姊,已是汗流浹背骡和。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工相赁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留相寇,地道東北人。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓钮科,卻偏偏與公主長得像唤衫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子绵脯,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理佳励,服務(wù)發(fā)現(xiàn),斷路器蛆挫,智...
    卡卡羅2017閱讀 134,701評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,850評論 6 342
  • 一件許久都想不通的事抓于,等想通了時候,地獄就變成天堂浇借。 有些時候捉撮,我們真的不需要太過計較,因為太在意身邊的瑣事妇垢,反而...
    文字里的拾荒者閱讀 298評論 1 2
  • 23.3o修己。我重溫了裸婚時代的最后一集恢总。要知道,我對連續(xù)劇向來沒什么耐力睬愤,在看完前兩集片仿,看著劉易陽和童佳倩跟他...
    7ba5e6eaaefc閱讀 444評論 0 1
  • Oauth工作原理 什么是Oauth 官方網(wǎng)站1.Oauth是一種安全認證的協(xié)議2.Oauth協(xié)議為用戶資源的授權(quán)...
    六便士少年閱讀 920評論 0 1