安卓开发技巧二:自定义日志工具类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里面设置是否打印就可以了,紧紧只是传一个布尔值。

是不是很简单呢,对于这个日志工具类还有另外一种实现方法,而且比这个还要简单一些,笔者会在接下来的时间将另外一个日志工具类给补上,谢谢!

解密android日志xlog,安卓开发技巧2:自定义日志工具类XLog的实现相关推荐

  1. 安卓开发37:自定义的HorizontalScrollView类,使其pageScroll的时候焦点不选中

    自定义一个HorizontalScrollView类,主要为了让这个HorizontalScrollView不能鼠标点击,不能左右按键,并且没有焦点. public class ImageMoveHo ...

  2. Eclipse+ADT+Android SDK 搭建安卓开发环境

    2019独角兽企业重金招聘Python工程师标准>>> Eclipse+ADT+Android SDK 搭建安卓开发环境 博客分类: Android 最近刚开始接触Android(安 ...

  3. Android:Eclipse+ADT+Android SDK 搭建安卓开发环境

    Eclipse+ADT+Android SDK 搭建安卓开发环境 要求 必备知识 windows 7 基本操作. 运行环境 windows 7(64位);  eclipse-jee-luna-SR2- ...

  4. 使用 Android Studio 搭建安卓开发环境

    使用  Android Studio  搭建安卓开发环境,方便.快捷.因为 Android SDK 等下载已经集成到 Android Studio 的安装中 1.官网下载 Android Studio ...

  5. Android 开发人员不得不收集的工具类集合

    RxTools 项目地址:vondear/RxTools  简介:Android 开发人员不得不收集的工具类集合 | 支付宝支付 | 微信支付(统一下单) | 微信分享 | Zip4j 压缩(支持分卷 ...

  6. Android快速开发不可或缺的11个工具类(下载)

    Android快速开发不可或缺的11个工具类(下载) 源码简介 Android快速开发不可或缺的11个辅助类,其中10个来自张鸿洋的博客,1个是我平时积攒的,复制粘贴到你的项目里,添加上包名就可以直接 ...

  7. Android开发人员不得不收集的工具类集合

    一.Android开发人员不得不收集的工具类集合  ----收藏 https://github.com/RobertCow/RxTools 二.android 开发之listview工具集合框架 ht ...

  8. Android实战简易教程-第五十枪(工具类的测试)

    在开发中,为了提高开发效率,我们一般会自定义自己的工具类.为了保证项目的可靠性,在将工具类引入项目之前,我们一般都会对工具类进行单元测试,下面我们通过一个实例看一下如何搭建测试环境. 1.首先自定义一 ...

  9. 【Android 插件化】Hook 插件化框架 ( 反射工具类 | 反射常用操作整理 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

最新文章

  1. mysql密码遗忘和登陆报错问题
  2. 百度启动高管退休计划,总裁张亚勤今年十月退休
  3. python 类继承与子类实例初始化
  4. 计算机专业考研英语二国家线,历年考研英语国家线汇总(2009-2020)
  5. apache poi 修改docx表格_word 模板内容的替换和生成word 表格(使用poi)
  6. 用纯CSS禁止鼠标点击事件以及禁止鼠标样式
  7. reStructuredText学习
  8. 模块化配电系统在高密度数据中心的应用
  9. python使用-Python 应该怎么去练习和使用?
  10. Docker玩转Rhadoop
  11. ☆汇总☆电力电子技术simulink仿真电路分析
  12. RNA-seq那些事儿
  13. Retrofit2 详解和使用(一)
  14. PyTorch中BN层与CONV层的融合(merge_bn)
  15. 电容的材质资料/什么cog,x5r y5v等知识
  16. OPenGL 学习笔记之 VAO VBO EBO 以及SHADER 并使用其绘制三角形
  17. 使用API进行FTP文件上传和下载
  18. linux视频播放器mplayer,ubuntu 视频播放器mplayer
  19. HoloView--Customization
  20. 气象业务信息中linux,在Ubuntu 14.10中如何安装和配置‘天气信息指示器’

热门文章

  1. 软件架构-zookeeper之curator详解
  2. 15nm粒径球形纳米金AuNPs-Thrombin修饰R-藻红蛋白/阿霉素的制备过程
  3. 2020年拼多多数据分析一面
  4. 研究生查分方式-查分时间大汇总-文都管联院
  5. 统计一个字符串中大写字母,小写字母,以及数字的个数。
  6. 共享打印机(联想M7605D)出现0x00000709错误代码的解决方法
  7. 用Excel写个摸球模拟器玩玩
  8. android 左右声道,Android立体声pcm的数据结构,左右声道拆分、左右声道反转
  9. Iphone被刷机后用电信卡提示未激活,移动联通卡可以正常使用
  10. 用数组实现一个栈结构