Android輕量級日志管理框架


代碼地址如下:
http://www.demodashi.com/demo/12134.html

ViseLog

Android 輕量級日志框架,使用森林對象維護不同的日志樹進行日志輸出,可以是Logcat樹、文件樹等,支持Bundle、Intent、Reference、Throwable、Map、Collection、JSON、Xml等格式化的輸出。

  • 項目引用:compile 'com.vise.xiaoyaoyou:viselog:1.1.2'

功能介紹

1、在Logcat中完美的格式化輸出,能很好的過濾手機和其他App的日志信息;

2、包含線程、類、方法信息,可以清楚地看到日志記錄的調用堆棧;

3、支持跳轉到源碼處;

4、支持格式化輸出JSON、XML格式信息;

5、支持List、Set、Map和數組的格式化輸出;

6、支持系統對象如Bundle、Intent、Reference和Throwable的格式化輸出;

7、支持自定義對象的格式化輸出;

8、支持字符串格式化后輸出;

9、支持自定義對象解析器;

10、支持自定義日志輸出樹,如輸出到文件的樹等。

項目結構

項目結構

使用介紹

使用前需要進行日志的配置初始化及日志樹的添加,默認實現了打印到Logcat的日志樹,但需要在應用啟動時進行添加,這樣才能將日志信息打印到Logcat中。一般需要在自定義Application的OnCreate方法中進行如下配置:

ViseLog.getLogConfig()
	.configAllowLog(true)//是否輸出日志
    .configShowBorders(true)//是否排版顯示
    .configTagPrefix("ViseLog")//設置標簽前綴
    .configFormatTag("%d{HH:mm:ss:SSS} %t %c{-5}")//個性化設置標簽,默認顯示包名
    .configLevel(Log.VERBOSE);//設置日志最小輸出級別,默認Log.VERBOSE
ViseLog.plant(new LogcatTree());//添加打印日志信息到Logcat的樹

1、打印基本信息

ViseLog.d("test message");

這里寫圖片描述

2、打印基本對象

ViseLog.d(new Boolean(true));

這里寫圖片描述

3、打印Bundle對象

ViseLog.d(new Bundle());

這里寫圖片描述

4、打印Intent對象

ViseLog.d(new Intent());

這里寫圖片描述

5、打印Reference對象

ViseLog.d(new SoftReference(0));

這里寫圖片描述

6、打印Throwable對象

ViseLog.e(new NullPointerException("this object is null!"));

這里寫圖片描述

7、打印List集合

List<String> list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
    list.add("test" + i);
}
ViseLog.d(list);

這里寫圖片描述

8、打印Map集合

Map<String, String> map = new HashMap<>();
for (int i = 0; i < 5; i++) {
    map.put("xyy" + i, "test" + i);
}
ViseLog.d(map);

這里寫圖片描述

9、打印JSON字符串

String json = "{'xyy1':[{'test1':'test1'},{'test2':'test2'}],'xyy2':{'test3':'test3','test4':'test4'}}";
ViseLog.json(json);

這里寫圖片描述

10、打印XML字符串

String xml = "<xyy><test1><test2>key</test2></test1><test3>name</test3><test4>value</test4></xyy>";
ViseLog.xml(xml);

這里寫圖片描述

核心功能講解

1、森林結構
其核心思想是將日志系統看成一個森林對象統一進行維護,森林可以添加樹和移除樹,只有添加了指定的功能樹才會有日志輸出。日志功能由ITree接口進行定義,統一由主干樹SoulsTree來分配,並將日志輸出功能提供給上層實現,默認已經實現了日志打印到Logcat的樹DefaultTree。

2、自定義解析器
實現Parser接口,並實現parseClassType()和parseString()方法,再通過addParserClass()配置到ViseLog就行,詳細可參考文檔自定義對象打印器

3、個性標簽設置詳解

變量 簡寫 描述 參數 示例 輸出結果
%% 轉義% %%d %d
%date %d 當前時間 格式化時間,如HH:mm:ss %d{HH:mm:ss:SSS} 22:12:12:112
%thread %t 當前線程名稱 %t thread-112
%caller %c 線程信息和類路徑 一般用%c{-5}就好了,用法為%c{整數}或者%caller{整數},整數為包名路徑,如路徑為com.vise.logapp.MainActivity.onCreate(MainActivity.java:108),%c{1}輸出com,以.分割的第一個,如果小於0就是排除前面n個,如%c{-1},vise.logapp.MainActivity.onCreate(MainActivity.java:135) %c{-3} MainActivity.onCreate(MainActivity.java:108)

4、日志配置詳解

方法 描述 取值 缺省
configAllowLog 是否允許日志輸出 boolean true
configTagPrefix 日志log的前綴 String "ViseLog"
configShowBorders 是否顯示邊界 boolean false
configLevel 日志顯示最小等級 Log Log.VERBOSE
addParserClass 自定義對象打印 Parser
configFormatTag 個性化設置Tag String %c{-5}

Android輕量級日志管理框架

代碼地址如下:
http://www.demodashi.com/demo/12134.html

注:本文著作權歸作者,由demo大師代發,拒絕轉載,轉載需要作者授權


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM