国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

超實用的android自定義log日志輸出工具類

2019-10-21 21:26:41
字體:
來源:轉載
供稿:網友

android自定義log日志輸出工具,該工具類具有以下優點:

1 在LogUtlis方法的第一個參數中填this可以輸出當前類的名稱,特別是在匿名內部類使用也可以輸出當前類名。 
如 : LogUtils.i(this,”這是一個實用的日志工具類”) 或 LogUtils.i(類名.class,”這是一個實用的日志工具類”)。 
效果:比如我在MainActivity中直接LogUtils.i(this,”logTest”),配合自己喜歡的標志,結果可輸出為 
“zhang———-MainActivity :logTest“,方便調試和看log。 

2 可以配合androidStudio中build文件中自定義變量來控制不同版本log的是否輸出。

使用步驟:

1 在app目錄下的build.gradle中定義變量名稱,寫完make或build下工程。

 /**  *  release 下的buildConfigField 為false會屏蔽掉log輸出  */  buildTypes {    release {      minifyEnabled false      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'      buildConfigField "boolean","LOG_DEBUG","true"    }    debug{      minifyEnabled false      buildConfigField "boolean","LOG_DEBUG","true"      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'    }  }

2 在應用的application中的onCreate方法中這樣定義

/** *  BuildConfig.LOG_DEBUG 獲取build.gradle中的自定義的log控制變量 */    if (BuildConfig.LOG_DEBUG) {      LogUtils.isShowLog = true;    } else {      LogUtils.isShowLog = false;    }

LogUtils

 

/** *  @創建者   zsh *  @創建時間  2017/1/17 10:23 *  @描述    ${log控制的工具類} *   *  @更新者   $Author *  @更新時間  $Date *  @更新描述  ${TODO} */public class LogUtils {  /** Log輸出的控制開關 */  public static boolean isShowLog = true;  /** 開發者自己定義,我是用自己的姓來log的 */  public static final String selfFlag = "zhang---------";  public static void i(Object objTag, String msg) {    if (!isShowLog) {      return;    }    String tag;    // 如果objTag是String,則直接使用    // 如果objTag不是String,則使用它的類名    // 如果在匿名內部類,寫this的話是識別不了該類,所以獲取當前對象全類名來分隔    if (objTag instanceof String) {      tag = (String) objTag;    } else if (objTag instanceof Class) {      tag = ((Class) objTag).getSimpleName();    } else {      tag = objTag.getClass().getName();      String[] split = tag.split("//.");      tag=split[split.length-1].split("//$")[0];    }    if (TextUtils.isEmpty(msg)) {      Log.i(selfFlag.concat(tag), "該log輸出信息為空");    } else {      Log.i(selfFlag.concat(tag), msg);    }  }  /**   * 錯誤調試信息   * @param objTag   * @param msg   */  public static void e(Object objTag, String msg) {    if (!isShowLog) {      return;    }    String tag;    if (objTag instanceof String) {      tag = (String) objTag;    } else if (objTag instanceof Class) {      tag = ((Class) objTag).getSimpleName();    } else {      tag = objTag.getClass().getName();      String[] split = tag.split("//.");      tag=split[split.length-1].split("//$")[0];    }    if (TextUtils.isEmpty(msg)) {      Log.e(selfFlag.concat(tag), "該log輸出信息為空");    } else {      Log.e(selfFlag.concat(tag), msg);    }  }  /**   * 詳細輸出調試   * @param objTag   * @param msg   */  public static void v(Object objTag, String msg) {    if (!isShowLog) {      return;    }    String tag;    if (objTag instanceof String) {      tag = (String) objTag;    } else if (objTag instanceof Class) {      tag = ((Class) objTag).getSimpleName();    } else {      tag = objTag.getClass().getName();      String[] split = tag.split("//.");      tag=split[split.length-1].split("//$")[0];    }    if (TextUtils.isEmpty(msg)) {      Log.v(selfFlag.concat(tag), "該log輸出信息為空");    } else {      Log.v(selfFlag.concat(tag), msg);    }  }  /**   * 警告的調試信息   * @param objTag   * @param msg   */  public static void w(Object objTag, String msg) {    if (!isShowLog) {      return;    }    String tag;    if (objTag instanceof String) {      tag = (String) objTag;    } else if (objTag instanceof Class) {      tag = ((Class) objTag).getSimpleName();    } else {      tag = objTag.getClass().getName();      String[] split = tag.split("//.");      tag=split[split.length-1].split("//$")[0];    }    if (TextUtils.isEmpty(msg)) {      Log.w(selfFlag.concat(tag), "該log輸出信息為空");    } else {      Log.w(selfFlag.concat(tag), msg);    }  }  /**   * debug輸出調試   * @param objTag   * @param msg   */  public static void d(Object objTag, String msg) {    if (!isShowLog) {      return;    }    String tag;    if (objTag instanceof String) {      tag = (String) objTag;    } else if (objTag instanceof Class) {      tag = ((Class) objTag).getSimpleName();    } else {      tag = objTag.getClass().getName();      String[] split = tag.split("//.");      tag=split[split.length-1].split("//$")[0];    }    if (TextUtils.isEmpty(msg)) {      Log.d(selfFlag.concat(tag), "該log輸出信息為空");    } else {      Log.d(selfFlag.concat(tag), msg);    }  }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富裕县| 石泉县| 九江市| 澳门| 昌都县| 桦川县| 彩票| 游戏| 长子县| 张家港市| 大田县| 民和| 深圳市| 徐汇区| 威信县| 中方县| 浑源县| 张家港市| 正安县| 玉田县| 盖州市| 临桂县| 香港 | 巧家县| 连江县| 大渡口区| 屏边| 申扎县| 南澳县| 萨迦县| 普兰县| 乐平市| 长乐市| 城步| 新丰县| 白水县| 竹北市| 石台县| 蓬溪县| 伽师县| 景泰县|