我使用 Log 函数来调试我的 Android 应用程序。我即将发布我的应用程序,我想降低调试级别。但是我不知道如何禁用其中一些功能。假设我只想禁用 Log.v() 日志。
Android 文档在这里说应该删除代码中的 Log 函数调用或删除/设置为 false android::debbugable 选项。第一个选项不符合我的需要,因为我想在我的源代码中记录调用(以供将来更新)。第二个选项禁用所有日志,不方便预发布测试。
您知道如何仅禁用详细 (Log.v) 日志吗?
非常感谢!
您可以为 -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);
禁用任何详细日志记录(或更高级别也禁用这些日志)。
如果你打算用 Proguard 混淆你的发布,那么把诸如
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
}
进入配置文件将从您的代码中删除这些类别的日志记录。