乙個簡易的日誌列印框架(支援列印策略自定義,預設提供2種策略:logcat列印和磁碟列印)
列印debug資訊和json日誌
列印xml資訊
列印出錯資訊
列印debug資訊和json日誌
列印xml資訊
列印出錯資訊
目前支援主流開發工具androidstudio的使用,直接配置build.gradle,增加依賴即可.
1.先在專案根目錄的 build.gradle 的 repositories 新增:
2.然後在dependencies新增:allprojects
}}複製**
dependencies
複製**
1.構建乙個logger需要乙個日誌格式化策略xlog.init(this);
複製**
iformatstrategy
和乙個日誌列印策略ilogstrategy
。
其中,日誌格式化策略iformatstrategy
應當持有日誌列印策略ilogstrategy
。而logger持有日誌格式化策略。
日誌列印的流程如下:
下面是自定義構建乙個磁碟列印logger的方法:xlog -> logger -> iformatstrategy -> ilogstrategy
複製**
2.簡約的日誌logger構建方法。ilogstrategy disklogstrategy = disklogstrategy.newbuilder() //日誌列印策略
.setlogdir("xlogdemo") //設定日誌檔案儲存的根目錄
.setlogprefix("xlog") //設定日誌檔名的字首
.setlogsegment(logsegment.four_hours) //設定日誌記錄的時間片間隔
.setloglevels(loglevel.error, loglevel.debug) //設定日誌記錄的等級
.build();
iformatstrategy formatstrategy = diskformatstrategy.newbuilder() //日誌格式策略
.setshowthreadinfo(false) //設定是否顯示執行緒資訊
.settimeformat(timeutils.log_line_time) //設定日誌記錄時間的時間格式
.setmethodcount(1) //設定列印顯示的方法數
.setlogstrategy(disklogstrategy) //設定日誌列印策略
.build();
logger.newbuilder("disklogger")
.setformatstrategy(formatstrategy) //設定日誌格式策略
.build();
複製**
為了方便logger的構建,我提供了logger靜態生產工廠logge***ctory
。它包含了幾種常用的logger構造方法。
下面是使用logge***ctory
構建的乙個磁碟列印logger:
disklogstrategy disklogstrategy = logge***ctory.getdisklogstrategy(
"xlogdemo", "xlog", loglevel.error, loglevel.debug
);logge***ctory.get******disklogger("disklogger", disklogstrategy, 0);
複製**
我們在使用第三方庫時,難免需要列印顯示第三方庫的日誌到logcat或者磁碟,那這個時候該怎麼辦呢?userinfo userinfo = new userinfo().setloginname("xuexiang").setpassword("12345678");
string json = new gson().tojson(userinfo);
xlog.get().d(json); //列印debug日誌
xlog.get().json(json); //列印json資訊
xlog.get().xml(resourceutils.readstringfromassert(this, "androidmanifest.xml")); //列印xml
try catch (exception e)
複製**
這個時候就可以使用logger的log
方法進行介面適配。
log方法的介面如下://適配第三方日誌列印介面
logger.setlogger(new ilogger
() });
複製**
目前提供兩種預設的crash處理:/**
* 日誌列印【提供具體日誌列印的功能】
* * @param level 日誌列印等級
* @param tag 日誌標籤
* @param message 日誌的資訊
* @param throwable 錯誤資訊
*/void log(@loglevel string level, string tag, string message, throwable throwable);
複製**
當然,你也可以實現你自己的崩潰crash處理,只需要實現crashhandler.getinstance().setoncrashlistener(new toastcrashlistener());
crashhandler.getinstance().setoncrashlistener(new sendemailcrashlistener());
複製**
oncrashlistener
介面即可。 乙個簡易gopool框架
在 go 中起協程是非常方便的,節省資源的,協程棧大小最大為2kb,所以乍一看在 go 中設計協程池是多此一舉的 但通過 pool 可以提供統一的多工處理模型,統一管理任務處理過程中的監控 告警 且實現資源隔離 不同協程池處理不同型別任務 最重要的一點 通過確定數量的 worker 可以實現對大事務...
乙個簡易的MVP框架
兩個介面 mvpview mvppresenter 乙個類 mvpactivity mvpfragment 1 mvpview public inte ce mvpview2 mvppresenter 泛型 public inte ce mvppresenterextends mvpview 3 m...
製作乙個簡易的PHP框架
crom是結合當前各種框架和各類教程,自己整合的開發框架,框架能進行簡易的web開發。gitlab原始碼鏈結 ctrl model views core common config libimooc.php log storage vendor composer.json index.php 框架根...