如果您在Android Dev上查找日志文档,则会有一个部分显示为
详细程度的顺序,从最少到最多,是ERROR,WARN,INFO,DEBUG,VERBOSE。除了在开发期间,不应该将详细编译到应用程序中。调试日志在运行时编译但被剥离。始终保留错误,警告和信息日志。
这个模糊的第二部分是目前令我困惑的部分。这是否意味着
a)编译器优化器会自动删除所有详细日志记录(就像在调试时特别建议的那样)
或
b)我应该在发布之前找到并用“”
替换所有Log.v()我意识到最终用户不需要详细记录,我完全同意这一点,但我也相信在开发过程中应该尽可能地利用日志。我意识到理论上我可以按照
的方式做点什么if(IS_VERBOOSE_LOGGING_ENABLED)
{
Log.v("My log message here");
}
然而,这仍然会违反建议(假设它意味着在编译时间之前剥离)。
非常感谢社区的任何澄清。
答案 0 :(得分:2)
最好的做法就是配置proguard以摆脱发布工件中的所有日志记录。那你根本不需要担心。
# get rid of all the logging
-assumenosideeffects class android.util.Log {
public static int v(...);
public static int d(...);
public static int w(...);
public static int i(...);
}