前言
個人第一個開源控件Easylog,希望大家多多關(guān)注,及時反饋需求以及bug,共同進步,已開源。
GitHub:https://github.com/Goorwl/Easylog
概述
Easylog 是Android平臺的一款開源的,簡單易用的日志輸出工具。
特點
- 配置簡單,使用方便,從此日志輸出so easy
- 對工程代碼影響小,不需要修改原代碼
- 提示信息明顯,使用上下邊框進行區(qū)分
- 定位直接,調(diào)試信息輸出代碼位置
快速配置
在項目的module模塊的build.gradle文件添加如下信息:
dependencies {
......
compile 'com.goorwl:easylog:0.5.0'
}
同步一下即可。
使用方式
代碼:
EasyLog.v("test verbose info...");
EasyLog.i("test info info...");
EasyLog.d("test debug info...");
EasyLog.w("test warn info...");
EasyLog.e("test error info...");
輸出:
V/= EasyLog =: *******************
V/= EasyLog =: test verbose info...
V/= EasyLog =: *******************
I/= EasyLog =: *****************
I/= EasyLog =: test info info...
I/= EasyLog =: *****************
D/= EasyLog =: ******************
D/= EasyLog =: test debug info...
D/= EasyLog =: ******************
W/= EasyLog =: *****************
W/= EasyLog =: test warn info...
W/= EasyLog =: *****************
E/= EasyLog =: ******************
E/= EasyLog =: test error info...
E/= EasyLog =: ******************
高級配置
為了提高當前工具的更多效果,現(xiàn)添加如下設(shè)置。
設(shè)置TAG
默認輸出日志的TAG是:= EasyLog =,如果需要單獨設(shè)置,可通過setTag(String tag)函數(shù)進行設(shè)置。
代碼:
EasyLog.v("test verbose info...");
EasyLog.setTag("TEST-TAG");
EasyLog.i("test info info...");
輸出:
V/= EasyLog =: *******************
V/= EasyLog =: test verbose info...
V/= EasyLog =: *******************
I/TEST-TAG: *****************
I/TEST-TAG: test info info...
I/TEST-TAG: *****************
設(shè)置輸出時間
代碼:
EasyLog.setIsTime(true);
輸出:
11-10 03:13:55.459 4597-4597/? D/= EasyLog =: *****************************************
11-10 03:13:55.459 4597-4597/? D/= EasyLog =: 2017-11-10 03:13:55 == test debug info...
11-10 03:13:55.459 4597-4597/? D/= EasyLog =: *****************************************
11-10 03:13:55.459 4597-4597/? W/= EasyLog =: ****************************************
11-10 03:13:55.459 4597-4597/? W/= EasyLog =: 2017-11-10 03:13:55 == test warn info...
11-10 03:13:55.459 4597-4597/? W/= EasyLog =: ****************************************
設(shè)置顯示定位信息
代碼:
EasyLog.setClazz(this); // 參數(shù):當前類的對象,如果當前調(diào)用在靜態(tài)方法,傳入 new Xxx();
EasyLog.setIsLine(true);
輸出:
V/= EasyLog =: **********************************************
V/= EasyLog =: (MainActivity.java:26) == test verbose info...
V/= EasyLog =: **********************************************
I/= EasyLog =: *******************************************
I/= EasyLog =: (MainActivity.java:27) == test info info...
I/= EasyLog =: *******************************************
注:其中(MainActivity.java:xx)是可點擊的,將會跳轉(zhuǎn)到源代碼部分,效果如下:

可點擊效果
如果未設(shè)置activity,將會出現(xiàn)如下現(xiàn)象:
V/= EasyLog =: **********************************************
V/= EasyLog =: (the activity is null) == test verbose info...
V/= EasyLog =: **********************************************
I/= EasyLog =: *******************************************
I/= EasyLog =: (the activity is null) == test info info...
I/= EasyLog =: *******************************************
恢復默認TAG
由于當前設(shè)置之后對整個工程有效,區(qū)分度不是很明顯,可以使用函數(shù)進行恢復默認,或者設(shè)置新的tag進行區(qū)分。
代碼:
EasyLog.setTag("TEST-TAG");
EasyLog.v("test verbose info...");
EasyLog.initTag();
EasyLog.i("test info info...");
輸出:
V/TEST-TAG: *********************************************************************
V/TEST-TAG: 2017-11-10 06:03:23 == (MainActivity.java:26) == test verbose info...
V/TEST-TAG: *********************************************************************
I/= EasyLog =: ******************************************************************
I/= EasyLog =: 2017-11-10 06:03:23 == (MainActivity.java:28) == test info info...
I/= EasyLog =: ******************************************************************
全配置效果:
代碼:
EasyLog.setTag("TEST-TAG");
EasyLog.setIsTime(true);
EasyLog.setClazz(this);
EasyLog.setIsLine(true);
EasyLog.v("test verbose info...");
EasyLog.i("test info info...");
簡易寫法:
EasyLog.setTag("TEST-TAG");
EasyLog.setClazz(this);
EasyLog.setAll(true);
EasyLog.v("test verbose info...");
EasyLog.i("test info info...");
輸出:
V/TEST-TAG: *********************************************************************
V/TEST-TAG: 2017-11-10 03:28:00 == (MainActivity.java:25) == test verbose info...
V/TEST-TAG: *********************************************************************
I/TEST-TAG: ******************************************************************
I/TEST-TAG: 2017-11-10 03:28:00 == (MainActivity.java:26) == test info info...
I/TEST-TAG: ******************************************************************
推薦使用
代碼:
// 放置在 =每個類= 的最前面配置
// setContentView(R.layout.activity_main); //設(shè)置布局下面
EasyLog.auto(this); // 參數(shù):當前類的對象,如果當前調(diào)用在靜態(tài)方法,傳入 new Xxx();
EasyLog.v("test verbose info...");
EasyLog.i("test info info...");
輸出:
V/= EasyLog =: *********************************************************************
V/= EasyLog =: 2017-11-10 15:49:22 == (MainActivity.java:27) == test verbose info...
V/= EasyLog =: *********************************************************************
I/= EasyLog =: ******************************************************************
I/= EasyLog =: 2017-11-10 15:49:22 == (MainActivity.java:28) == test info info...
I/= EasyLog =: ******************************************************************
取消輸出
鑒于使用當前控件的用戶都是開發(fā)者,所以當前默認設(shè)置的是輸出,如果上線,可以在代碼比較靠前的位置設(shè)置不顯示:
EasyLog.setIsShow(false);
如果需要進行新版本開發(fā),只需要把上面代碼注釋掉即可顯示日志輸出信息。
補充說明
當前版本比較新,功能基本夠用,如果大家還有新的需求,可以提出來,后續(xù)版本迭代會進行更新。
聯(lián)系方式
E-mail:goorwl@163.com