麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統(tǒng) > Android > 正文

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

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

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

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

 

/** *  @創(chuàng)建者   zsh *  @創(chuàng)建時間  2017/1/17 10:23 *  @描述    ${log控制的工具類} *   *  @更新者   $Author *  @更新時間  $Date *  @更新描述  ${TODO} */public class LogUtils {  /** Log輸出的控制開關 */  public static boolean isShowLog = true;  /** 開發(fā)者自己定義,我是用自己的姓來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開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 色猫av| 四虎久草 | 粉嫩粉嫩一区二区三区在线播放 | 久久久久久久久久91 | 日本免费中文字幕 | 精品成人免费一区二区在线播放 | 一级电影在线观看 | 91短视频在线播放 | 91九色免费视频 | 一级做a爰片性色毛片2021 | 手机av在线电影 | 国产精品91在线 | 免看一级片 | 成人黄色小视频网站 | 日韩精品中文字幕一区二区三区 | 午夜九九九 | 国产精品久久久久永久免费 | 日韩黄在线观看 | 国产精品视频一区二区三区四 | av电影在线观看网站 | 2021狠狠操 | 欧美一级特黄特色大片免费 | 亚洲国产中文字幕 | h视频免费观看 | 久久av免费 | 国产伊人色 | 国产三级国产精品国产普男人 | 黄色一级电影网 | 精品一区二区三区免费看 | 亚洲成人精品视频 | 精品国产一区二区三 | 婷婷一区二区三区四区 | 青青操国产 | 欧洲黄视频 | 成人免费网站在线观看视频 | 精品国产一区二区三区久久久蜜 | 黄色a级片视频 | 日本在线视频二区 | 精品久久久一二三区播放播放播放视频 | 久久亚洲精品久久国产一区二区 | 免费看日韩片 |