4

我使用 Log 函数来调试我的 Android 应用程序。我即将发布我的应用程序,我想降低调试级别。但是我不知道如何禁用其中一些功能。假设我只想禁用 Log.v() 日志。

Android 文档在这里说应该删除代码中的 Log 函数调用或删除/设置为 false android::debbugable 选项。第一个选项不符合我的需要,因为我想在我的源代码中记录调用(以供将来更新)。第二个选项禁用所有日志,不方便预发布测试。

您知道如何仅禁用详细 (Log.v) 日志吗?

非常感谢!

4

2 回答 2

4

您可以为 -class 创建自己的包装器Log,可能是这样的:

static class MyLog{
    private static int mLevel;
    public final static void setLevel(int level){
        mLevel = level;
    }
    public final static void v(String tag, String message){
        if( mLevel > 0 ) return;
        Log.v(tag, message);
    }
    public final static void d(String tag, String message){
        if( mLevel > 1 ) return;
        Log.d(tag, message);
    }
    public final static void i(String tag, String message){
        if( mLevel > 2 ) return;
        Log.d(tag, message);
    }
    //Same for w and e if neccessary..
}

然后,您可以使用MyLog.setLevel(1);禁用任何详细日志记录(或更高级别也禁用这些日志)。

于 2012-04-04T11:51:02.113 回答
4

如果你打算用 Proguard 混淆你的发布,那么把诸如

-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** v(...);
}

进入配置文件将从您的代码中删除这些类别的日志记录。

于 2012-04-04T11:52:45.610 回答