android - Android 上的详细日志记录

标签 android optimization architecture logging

如果您在 Android Dev 上查找日志记录文档你有一个部分写着

The order in terms of verbosity, from least to most is ERROR, WARN, INFO, DEBUG, VERBOSE. Verbose should never be compiled into an application except during development. Debug logs are compiled in but stripped at runtime. Error, warning and info logs are always kept.

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

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

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

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

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

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

如果社区提供任何澄清,我们将不胜感激。

最佳答案

最好的办法就是配置 proguard 以消除发布 Artifact 中的所有日志记录。那你就完全不用担心了。

# 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(...);
}

关于android - Android 上的详细日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10021366/

相关文章:

java - 如何使用 java 代码在 android 中锁定文件?

R 优化使用 stri_extract 的双循环

实例存储的性能与 EBS 优化的 EC2 或 RAID 卷

architecture - MVC4 WebAPI的正确架构是什么

android - 神秘 Activity 不符合应用主题

android - 如何在 NavigationView 中添加页脚按钮

javascript - requirejs optimizer - 需要帮助优化我们的应用程序

c# - 洋葱架构的 DDD 限界上下文

database - 如何在一个由多个应用程序组成的平台上实现持续交付,这些应用程序都依赖于一个数据库并且相互依赖?

android - ProGuard 没有使用 Windows 中使用的 Joda Time 进行编译