超实用的android自定义log日志输出工具类

发布时间:2019-08-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了超实用的android自定义log日志输出工具类脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

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);     }   } } 
android教程
脚本网站
android studio

脚本宝典总结

以上是脚本宝典为你收集整理的超实用的android自定义log日志输出工具类全部内容,希望文章能够帮你解决超实用的android自定义log日志输出工具类所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。