【发布时间】:2012-04-05 01:04:28
【问题描述】:
如果您在 Android Dev 上查找日志记录文档,您会看到一个部分显示
在详细程度方面,从少到多的顺序是 ERROR、WARN、INFO、DEBUG、VERBOSE。除非在开发期间,否则永远不应将详细信息编译到应用程序中。调试日志被编译,但在运行时被剥离。始终保留错误、警告和信息日志。
这个简介的第二部分是目前让我感到困惑的部分。这是否意味着
a) 编译器优化器会自动去除所有详细的日志记录(就像专门建议的那样在调试中没有)
或
b) 我应该在发布之前找到所有 Log.v() 并将其替换为 ""
我意识到最终用户不希望详细日志记录,我完全同意这一点,但我也相信在开发过程中应尽可能多地使用日志。我意识到我理论上可以做一些类似
的事情if(IS_VERBOOSE_LOGGING_ENABLED)
{
Log.v("My log message here");
}
但是这仍然会违反建议(假设它意味着在编译时间之前删除)。
社区的任何澄清将不胜感激。
【问题讨论】:
-
对此进行了很好的讨论,请参阅stackoverflow.com/questions/2446248/… 显然这些调用在发布版本中默认不会被删除。按照您的建议,您始终必须在登录之前检查日志级别。 Log.isLoggable(Log.VERBOSE) 可能会替代您的 IS_Verbose__logging_enabled。 developer.android.com/reference/android/util/…
标签: android optimization architecture logging