android.util.Log中的错误或功能? – Log.isLoggable(DEBUG)= false但未禁用Log.d()

android.util.Log中的错误或功能? – Log.isLoggable(DEBUG)= false但未禁用Log.d(),第1张

概述更新:重新制定问题和标题: 我一直认为昂贵的android Logging方法可以通过询问日志是否像这样活动来优化 import android.util.Log; if (Log.isLoggable("MyContext", Log.DEBUG)) { Log.d("MyContext", "my logging: " + callExpensiveCalcu 更新:重新制定问题和标题:

我一直认为昂贵的android Logging方法可以通过询问日志是否像这样活动来优化

import androID.util.Log;    if (Log.isLoggable("MyContext",Log.DEBUG))    {        Log.d("MyContext","my logging: " + callExpensiveCalculation());    }

但是当使用androID 2.2模拟器尝试这个时,我的Log.d()永远不会被调用.

所以我尝试了这段代码

Log.v(MY_CONTEXT,"VERBOSE logging is active: " + Log.isLoggable(MY_CONTEXT,Log.VERBOSE));    Log.d(MY_CONTEXT,"DEBUG logging is active: " + Log.isLoggable(MY_CONTEXT,Log.DEBUG));    Log.i(MY_CONTEXT,"INFO logging is active: " + Log.isLoggable(MY_CONTEXT,Log.INFO));    Log.w(MY_CONTEXT,"WARN logging is active: " + Log.isLoggable(MY_CONTEXT,Log.WARN));    Log.e(MY_CONTEXT,"ERROR logging is active: " + Log.isLoggable(MY_CONTEXT,Log.ERROR));

令我惊讶的是,我得到了

02-27 19:05:43.015: V/MyContext(334): VERBOSE logging is active: false02-27 19:05:43.015: D/MyContext(334): DEBUG logging is active: false02-27 19:05:43.015: I/MyContext(334): INFO logging is active: true02-27 19:05:43.015: W/MyContext(334): WARN logging is active: true02-27 19:05:43.015: E/MyContext(334): ERROR logging is active: true

因此,即使禁用了日志记录,日志记
这是androID或我的测试代码中的错误吗?

是否有其他方法可以确定调试(或其他一个日志级别)是否处于活动状态?

我使用eclipse logcat-vIEw和log-level verbose,并从eclipse开始测试并运行androID-app

解决方法 isLoggable实际上只是一种为方便起见为某些标记提供标记的机制.它实际上没有做任何事情来禁用日志记录.您的第一个代码块是正确的:

if (Log.isLoggable("MyContext",Log.DEBUG)){    Log.d("MyContext","my logging: " + callExpensiveCalculation());}

这将记录或不记录,具体取决于isLoggable是返回true还是false.但是,当你这样做时(不检查isLoggable):

Log.d(MY_CONTEXT,Log.DEBUG));

它将记录,无论你调用它时返回的是什么.简而言之,如果要根据该标志启用/禁用日志记录,则需要在日志的任何位置进行检查. if语句是允许您跳过不必要的日志的部分.如果if子句为false,则永远不会运行内部代码.

总结

以上是内存溢出为你收集整理的android.util.Log中的错误或功能? – Log.isLoggable(DEBUG)= false但未禁用Log.d()全部内容,希望文章能够帮你解决android.util.Log中的错误或功能? – Log.isLoggable(DEBUG)= false但未禁用Log.d()所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1127052.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存