亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > 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開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲大尺度美女在线| 亚洲三级免费看| 日韩大片在线观看视频| 亚洲少妇中文在线| 色偷偷88888欧美精品久久久| 成人h视频在线| 久久久噜噜噜久久中文字免| 黑丝美女久久久| 亚洲乱码一区av黑人高潮| 国产精品视频不卡| 国产精品视频免费在线观看| 日韩精品在线视频观看| 91产国在线观看动作片喷水| 色综合久久久久久中文网| 4k岛国日韩精品**专区| 成人性生交大片免费看视频直播| 91精品国产91久久久久久不卡| 日本一区二区在线播放| 日韩精品中文在线观看| 国产精品美女999| 欧美另类99xxxxx| 日韩精品免费视频| 午夜精品一区二区三区在线视| 欧美高清videos高潮hd| 亚洲最大福利网| 亚洲新中文字幕| 日韩欧美在线网址| 国语自产精品视频在线看抢先版图片| 日韩高清欧美高清| 欧美精品videosex极品1| 成人福利视频网| 欧美性xxxxx| 国产视频精品在线| 亚洲精品一区中文字幕乱码| 91夜夜揉人人捏人人添红杏| 欧美日韩美女在线观看| 亚洲欧美制服另类日韩| 国产精品一区二区久久| 国产美女高潮久久白浆| 国产91精品视频在线观看| 亚洲精品视频网上网址在线观看| 亚洲人成绝费网站色www| 亚洲激情免费观看| 美女扒开尿口让男人操亚洲视频网站| 国产精品青草久久久久福利99| 亚洲欧美中文日韩v在线观看| 超碰91人人草人人干| 亚洲a成v人在线观看| 国内精品一区二区三区四区| 国产亚洲精品久久久久久| 中文字幕久久亚洲| 亚洲视频精品在线| 国产高清视频一区三区| 日韩在线观看高清| 欧美电影在线观看| 欧美午夜电影在线| 91av在线不卡| 久久综合免费视频影院| 91高清视频免费| 亚洲综合在线做性| 欧美亚洲视频一区二区| 亚洲性视频网站| 91免费在线视频| 国产a∨精品一区二区三区不卡| 一道本无吗dⅴd在线播放一区| 亚洲日本欧美日韩高观看| 麻豆国产va免费精品高清在线| 日韩欧美极品在线观看| 亚洲色图15p| 精品成人国产在线观看男人呻吟| 日韩免费av片在线观看| 亚洲精品一区二区三区不| 久久精品视频网站| 97在线视频免费播放| 97国产精品免费视频| 国产精品欧美激情| 亚洲欧洲国产精品| 欧美性视频精品| 成人黄色av网| 国产欧美精品xxxx另类| 亚洲欧洲中文天堂| 欧美中文字幕在线播放| 欧美成人sm免费视频| 亚洲欧美在线磁力| 一区二区在线视频播放| 亚洲电影天堂av| 欧美第一淫aaasss性| 日韩av成人在线观看| 亚洲欧洲中文天堂| 欧美自拍视频在线观看| 欧美日韩在线免费观看| 久久青草福利网站| 日韩欧美在线视频观看| 久久精品国产一区二区三区| 欧美日韩免费看| 国产精品欧美久久久| 亚洲v日韩v综合v精品v| 日韩69视频在线观看| 26uuu国产精品视频| 久久国产天堂福利天堂| 国产免费一区二区三区在线观看| 欧美国产亚洲视频| 精品视频久久久久久久| 亚洲国产美女精品久久久久∴| 欧美乱大交做爰xxxⅹ性3| 色yeye香蕉凹凸一区二区av| 91精品国产91久久久久久吃药| 欧美资源在线观看| 国产精品美女免费视频| 91在线视频免费| 国产精品视频男人的天堂| 欧美xxxx14xxxxx性爽| 欧美性猛交xxxx富婆弯腰| 欧美另类在线播放| 日韩精品免费在线| 91在线观看免费| 久久九九国产精品怡红院| 欧美视频在线看| 欧美激情精品久久久久久免费印度| 97人人做人人爱| 久久九九热免费视频| 成人午夜在线观看| 午夜精品三级视频福利| 日本久久久久亚洲中字幕| 国产欧美欧洲在线观看| 91在线无精精品一区二区| 欧美色欧美亚洲高清在线视频| 国产免费一区二区三区在线能观看| 亚洲国产精品大全| 欧美成人全部免费| 欧美国产中文字幕| 久久综合色影院| 日韩一区视频在线| 91香蕉电影院| 国产精品日韩在线播放| 欧美精品电影免费在线观看| 欧美孕妇孕交黑巨大网站| 欧美视频免费在线| 3344国产精品免费看| 日韩成人性视频| 国产精品久久久久久久久影视| 日本一区二区在线免费播放| 91免费视频国产| 最新91在线视频| 81精品国产乱码久久久久久| 成人激情春色网| 91av网站在线播放| 亚洲综合在线播放| 最新国产成人av网站网址麻豆| 亚洲欧美国产日韩中文字幕| 久久精品国亚洲| 最近2019中文字幕一页二页| 欧美激情一级欧美精品| 91九色国产社区在线观看| 国产成人精品日本亚洲专区61| 欧美精品亚州精品| 亚洲精品在线视频| 精品久久久久久久久久久久| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美高清性猛交| 国产午夜精品全部视频在线播放| 国产一区私人高清影院| 亚洲精品久久久一区二区三区| 一区二区三区高清国产|