在Android上详细登录

时间:2012-04-05 01:04:29

标签: android optimization architecture logging

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

  

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

这个模糊的第二部分是目前令我困惑的部分。这是否意味着

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

b)我应该在发布之前找到并用“”

替换所有Log.v()

我意识到最终用户不需要详细记录,我完全同意这一点,但我也相信在开发过程中应该尽可能地利用日志。我意识到理论上我可以按照

的方式做点什么
if(IS_VERBOOSE_LOGGING_ENABLED) 
{ 
    Log.v("My log message here");
} 

然而,这仍然会违反建议(假设它意味着在编译时间之前剥离)。

非常感谢社区的任何澄清。

1 个答案:

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