安卓開發技巧二:自訂日誌工具類XLog的實現,安卓xlog
我們在開發過程中,列印日誌是必不可少的一個調試環節,然而,直接使用系統內建的Log日誌類,並不能滿足我們實際項目的需求:假如我們現在在開發一款比較大的項目,用到列印日誌的地方肯定特別多,等到真正上線的時候,我們是不希望日誌依舊能夠列印出的,原因很簡單,不僅多少有些影響效率,更有可能導致資訊的泄露,所以我們就需要把所有的日誌列印語句全部取消掉,難道我們真的一個一個的去刪除這些列印日誌的語句嗎?項目那麼大,就是想刪除,也得耗費大量的時間和精力!大家不用怕,筆者這就給大家帶來一款控制線上版本和線下版本的日誌列印工具類XLog,通過該工具,我們可以只需要更改一條語句,就能控制日誌是否能夠列印輸出,那麼先貼出整個工具類的代碼吧:
轉載請註明出處:http://blog.csdn.net/u011131296/article/details/41822589
其他開發技巧:
安卓開發技巧一:深入理解Android布局中Layout_weight的屬性
安卓開發技巧二:自訂日誌工具類XLog的實現
安卓開發技巧三:Activity的啟動模式
安卓開發技巧四:分享一個工具包,方便快捷切換安卓UI線程及其他後台線程的一個工具包
public final class XLog {private static boolean logable;private static int logLevel;public static enum LogPriority {VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT}/** * 同Log.v * * @param tag * @param msg * @return */public static int v(String tag, String msg) {return println(LogPriority.VERBOSE, tag, msg);}/** * 同Log.d * * @param tag * @param msg * @return */public static int d(String tag, String msg) {return println(LogPriority.DEBUG, tag, msg);}/** * 同Log.i * * @param tag * @param msg * @return */public static int i(String tag, String msg) {return println(LogPriority.INFO, tag, msg);}/** * 同Log.w * * @param tag * @param msg * @return */public static int w(String tag, String msg) {return println(LogPriority.WARN, tag, msg);}/** * 同Log.e * * @param tag * @param msg * @return */public static int e(String tag, String msg) {return println(LogPriority.ERROR, tag, msg);}/** * 擷取是否可列印日誌 * * @return */public static boolean isLogable() {return logable;}/** * 設定是否列印日誌 * * @param logable */public static void setLogable(boolean logable) {XLog.logable = logable;}/** * 設定日誌等級 * * @param level */public static void setLogLevel(LogPriority level) {XLog.logLevel = level.ordinal();}private static int println(LogPriority priority, String tag, String msg) {int level = priority.ordinal();if (logable && logLevel <= level) {return Log.println(level + 2, tag, msg);} else {return -1;}}}
接下來,我們來分析一下該工具類的實現原理:
第一步:首先定義一個是否能夠列印日誌的變數以及列印日誌的優先順序
第二步:根據優先順序實現五個列印日誌的靜態方法
第三步:設定擷取是否可列印日誌的方法
第四步:我們只需要在自訂的Application裡面設定是否列印就可以了,緊緊只是傳一個布爾值。
是不是很簡單呢,對於這個日誌工具類還有另外一種實現方法,而且比這個還要簡單一些,筆者會在接下來的時間將另外一個日誌工具類給補上,謝謝!