如何在构建Android应用程序时禁用一些日志功能?
我使用日志函数调试我的Android应用程序。我即将发布我的应用程序,我想降低调试级别。然而,我不知道如何禁用其中一些功能。假设我只想禁用Log.v()日志 AndroidDoc说应该删除代码中的日志函数调用,或者删除/设置Android::debbugable选项为false。第一个选项不适合我的需要,因为我想在源代码中记录调用(用于将来的更新)。第二个选项禁用所有日志,这不便于发布前测试 您知道如何仅禁用详细(Log.v)日志吗如何在构建Android应用程序时禁用一些日志功能?,android,logging,Android,Logging,我使用日志函数调试我的Android应用程序。我即将发布我的应用程序,我想降低调试级别。然而,我不知道如何禁用其中一些功能。假设我只想禁用Log.v()日志 AndroidDoc说应该删除代码中的日志函数调用,或者删除/设置Android::debbugable选项为false。第一个选项不适合我的需要,因为我想在源代码中记录调用(用于将来的更新)。第二个选项禁用所有日志,这不便于发布前测试 您知道如何仅禁用详细(Log.v)日志吗 非常感谢 您可以为Log-类创建自己的包装器,可能类似于: s
非常感谢 您可以为
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(...);
}
进入配置文件将从代码中删除这些日志类别。我将在所有项目中将Log.v替换为//Log.v删除代码中所有可以工作的日志项。我没有计划使用Proguard,但我会记住你的想法,因为它可能对我的其他计划有用。谢谢:)又好又简单,谢谢你!从您的答案和另一个答案中,我了解到没有内置解决方案。我认为这就是拥有5种不同功能的目的。它们只是为了美学而来吗?@Cyctemic可能有,但如果有,我还没有找到。如果您在LogCat中查看日志输出,您可以选择过滤掉某些级别的日志,这样它们就不会完全“无用”。您可以在此处阅读有关日志记录的内容: