DEBUG方法比较
当我们在做APP开发时,需要设置调试开关打印Log,下面我列举出3种方法:

方法一:直接赋值
public static final boolean DEBUG = true;//false
1
方法二:设置BuildConfig.DEBUG的值
public static final boolean DEBUG = BuildConfig.DEBUG;
1
方法三:设置Log.isLoggable的值
public static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
1
当然这里可能还有很多别的设置方法,由于个人局限就没有写了。下面我们来看看上面3种方法各自的特点:

方法一比较直观明了,可以清楚的知道是否允许打印Log。

方法二和编译模式绑定,如果是release版的就不会打印Log,如果是debug版的话就会打印Log。

方法三通过设置property属性来打印Log

从他们的特点来看我们知道,第一种和第二种方法我们至少需要编译两个版本的软件用于发布和调试。
第三种方法我们只需要编译一个版本既可以。在我们需要查看Log的时候,通过设置property即可查看Log。下面来详细介绍下Log.isLoggable的使用。

Log.isLoggable的使用姿势
步骤一:
MainActivity.java

public static final String TAG = "Main";
public static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);

public void onCreate(){
if (DEBUG){
Log.d(TAG, "onCreate");
}
}

步骤二:
adb shell setprop log.tag.Main D
1
或者
修改/data/local.prop文件(该方法不一定有效,根据不同的系统,可能不会去读取local.prop文件)

log.tag.Main=D
1
注:这里的TAG要加上log.tag.做前缀

步骤三:
退出APP,重新进入,即可打印Log(注:这里之所以要退出APP是因为我们定义的DEBUG是全局的,所以需要重新赋值)。
当然你们也可以设置成局部变量,这样就不需要重新进入了,这样就可以免除第三步。
---------------------
https://blog.csdn.net/qqxiaoqiang1573/article/details/72867776

Log.isLoggable之一正确的使用姿势的更多相关文章

  1. 如约而至,Java 10 正式发布! Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十四)Redis缓存正确的使用姿势 努力的孩子运气不会太差,跌宕的人生定当更加精彩 优先队列详解(转载)

    如约而至,Java 10 正式发布!   3 月 20 日,Oracle 宣布 Java 10 正式发布. 官方已提供下载:http://www.oracle.com/technetwork/java ...

  2. 使用Log.isLoggable方法

    在Audio Debug过程中想打开AudioService.java文件中的log,比如想打开setmode这段log: if (DEBUG_MODE) { Log.v(TAG, "set ...

  3. android Log.isLoggable步骤的使用

    原文地址: http://www.cnblogs.com/maxinliang/p/4024442.html android Log.isLoggable方法的使用 android 动态控制logca ...

  4. android:分享 一个很强大的LOG开关---Log.isLoggable

    标签:android分享 一个很强大的log开 1.API亮点: 此API可以实现不更换APK,在出问题的手机上就直接能抓到有效log,能提升不少工作效率. 2.API介绍 最近在解决短信问题时,看到 ...

  5. Android Log.isLoggable方法异常:exceeds limit of 23 characters

    AndroidRuntime: java.lang.IllegalArgumentException: Log tag "AccountSetupIncomingFragment" ...

  6. android:分享 一个非常强大的LOG开关---Log.isLoggable

    1.API亮点: 此API能够实现不更换APK.在出问题的手机上就直接能抓到有效log,能提升不少工作效率. .API介绍 近期在解决短信问题时.看到一个非常强大的LOG开关---Log.isLogg ...

  7. Servlet3.0+springmvc5+log4j2正确的开启姿势(WebLookUp)

    前言 java社区占据市场份额比较大的日志组件由log4j 1.×,到logback,再到整合后的升级版 log4j 2.×,有网友测试后据说log4j2的性能最NB.于是开始往自己的springmv ...

  8. How Javascript works (Javascript工作原理) (五) 深入理解 WebSockets 和带有 SSE 机制的HTTP/2 以及正确的使用姿势

    个人总结: 1.长连接机制——分清Websocket,http2,SSE: 1)HTTP/2 引进了 Server Push 技术用来让服务器主动向客户端缓存发送数据.然而,它并不允许直接向客户端程序 ...

  9. 论consul正确的关闭姿势

    最近在工作中发现一个有意思的现象,我用 ctrl+c 关闭本地 consul 的时候,报警系统并没有发出告警,说我的 node 异常,自己看了一下代码,发现 consul 的关闭还是有点猫腻的,仔细来 ...

随机推荐

  1. 第六十五天 js操作

    1.闭包 // 函数的嵌套定义,定义在内部的函数都称之为 闭包 // 1.一个函数要使用另一个函数的局部变量 // 2.闭包会持久化包裹自身的函数的局部变量 // 3.解决循环绑定 function ...

  2. rest framework 认证 权限 频率

    认证组件 发生位置 APIview 类种的 dispatch 方法执行到 initial 方法 进行 认证组件认证 源码位置 rest_framework.authentication  源码内部需要 ...

  3. pthread_cond_wait学习笔记

    pthread_cond_wait学习笔记 近期学习了线程等待和激活的相关知识. 先介绍几个api: pthread_cond_t表示多线程的条件变量,用于控制线程等待和就绪的条件. 一:条件变量的初 ...

  4. 解决ssh登录慢的问题

    修改文件/etc/ssh/sshd_config  : UseDNS no GSSAPIAuthentication no 重启服务 service sshd restart

  5. OS + macOS Mojave 10.14.4 / sushi / ssh-keygen / ssh-copy-id

    s 系统版本: macOS 10.14.4 (18E226) 内核版本: Darwin 18.5.0 型号名称: Mac mini 2014 型号标识符: Macmini7,1 处理器名称: Inte ...

  6. MessageFormat的用法,java动态替换String字符串中的占位符

    import java.text.MessageFormat; import java.util.GregorianCalendar; import java.util.Locale; public ...

  7. SpringBoot系列: 如何优雅停止服务

    ============================背景============================在系统生命周期中, 免不了要做升级部署, 对于关键服务, 我们应该能做到不停服务完成 ...

  8. [物理学与PDEs]第1章第1节 引言

    1. 电动力学研究的对象是电磁场, 研究电磁场的基本属性---运动规律及它和带电物质的相互作用. 2. 场, 物质的一种存在方式. 3. Maxwell 方程组是电动力学中的基本方程, 是一切有关电磁 ...

  9. CSRF篇-本着就了解安全本质的想法,尽可能的用通俗易懂的语言去解释安全漏洞问题

    0x01 Brief Description csrf 跨站伪造请求,请求伪造的一种,是由客户端即用户浏览器发起的一种伪造攻击.攻击的本质是请求可以被预测的到. 在了解csrf攻击之前,需要了解浏览器 ...

  10. nnet3配置中的上下文和chunk(块)大小

    Nnet3配置中的上下文和块大小 简介 本页讨论了nnet3配置中关于解码和训练的块大小以及左右上下文的某些术语.这将有助于理解一些脚本.目前,从脚本角度来看,没有任何关于nnet3的"概述 ...