2

如果您在Android Dev上查找日志记录文档,则有一个部分显示为

详细程度从少到多的顺序是 ERROR、WARN、INFO、DEBUG、VERBOSE。除非在开发期间,否则永远不应将详细信息编译到应用程序中。调试日志被编译,但在运行时被剥离。始终保留错误、警告和信息日志。

这个简介的第二部分是目前让我感到困惑的部分。这是否意味着

a)编译器优化器会自动去除所有详细的日志记录(就像在调试中特别建议的那样)

或者

b) 我应该在发布之前找到所有 Log.v() 并将其替换为 ""

我意识到最终用户并不需要详细的日志记录,我完全同意这一点,但我也相信在开发过程中应该尽可能多地使用日志。我意识到我理论上可以做一些类似的事情

if(IS_VERBOOSE_LOGGING_ENABLED) 
{ 
    Log.v("My log message here");
} 

但是,这仍然会违反建议(假设这意味着在编译时间之前删除)。

社区的任何澄清将不胜感激。

4

1 回答 1

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(...);
}
于 2012-04-05T01:07:48.160 回答