gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:58:28 25 4
gpt4 key购买 nike

更新:重新制定问题和标题:

我一直认为昂贵的 android Logging 方法可以通过像这样询问日志记录是否处于 Activity 状态来优化

    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: false
02-27 19:05:43.015: D/MyContext(334): DEBUG logging is active: false
02-27 19:05:43.015: I/MyContext(334): INFO logging is active: true
02-27 19:05:43.015: W/MyContext(334): WARN logging is active: true
02-27 19:05:43.015: E/MyContext(334): ERROR logging is active: true

因此即使日志记录被禁用,日志记录也能正常工作。这是 android 中的错误还是我的测试代码中的错误?

是否有其他方法可以查明调试(或其他日志级别之一)是否处于 Activity 状态?

我使用日志级详细的 eclipse logcat-view 并从 eclipse 开始测试并以 android-app 运行

最佳答案

isLoggable 实际上只是一种为某些标记提供标记以方便您使用的机制。它实际上并没有做任何事情来禁用日志记录。您的第一段代码是正确的:

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

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

Log.d(MY_CONTEXT, "DEBUG logging is active: " + Log.isLoggable(MY_CONTEXT, Log.DEBUG));

无论 isLoggable 如果您调用它会返回什么,它都会记录。简而言之,如果您想根据该标志启用/禁用日志记录,您需要在您记录的所有地方进行检查。 if 语句是让您跳过不必要日志的部分。如果 if 子句为 false,则永远不会运行其中的代码。

关于android - android.util.Log 中的错误或功能? - Log.isLoggable(DEBUG) = false 但 Log.d() 未禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9468444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com