2012-03-05 49 views

回答

4

如果可能,是的,它是一个很好的应用程序开发实践,但正确处理e.printStack是必要的,以防止您的应用程序的力量从无必要的例外中关闭。为此,您可以在所有catch块中使用Log.e(TAG, e.toString());。这将保留一些关于您的应用程序行为的必要信息,并且您还可以轻松获取有关应用程序的任何强制关闭或异常的信息。

0

它真的取决于应用程序在发布到市场后的生命周期。

如果你不能相信你的用户提供详细的错误报告(一般来说,与工程相关的应用程序,你可以希望有些用户能够提供详细的崩溃报告),那么没有理由臃肿的Android日志。

另一方面,一些错误是heisenbugs并且在添加日志语句后可能会消失,使它们很难找到。

这真的是一个味道问题 - 我提供了一个构建时开关,将它们包含在调试版本中,但不包含在发布版本中。而且我通常会等到应用程序过去测试才能完全禁用调试日志。

0

我不知道你是否必须删除它。 如果我上传了一个项目进入市场,我得到了同一个应用程序的2个版本。

  1. 用的println和日志
  2. 没有的println和日志

删除它们总会让应用程序去更快一点(很少)。

0

OfCource你应该,特别是如果你的应用程序依赖很多性能(例如游戏具有快速帧率),否则日志的打印会消耗很多性能 正确的方法是使用一个标志像isLoggable,如果设置为false将不会打印日志。

0

,他们建议您禁用日志记录,您可以看看here

确保停用记录和你建立你的应用程序之前禁用调试选项 发布。您可以通过删除源文件中对日志方法的调用来停用 日志记录。

然而,你应该保留一些日志记录,如打印上异常等堆栈跟踪你可能有麻烦以后调试可能崩溃,如果你删除它们的负载。

0

我只是创建自己的Log类并为android.util构建包装器方法。日志方法,在写入日志之前检查BuildConfig.DEBUG

0

要删除的日志类来电添加以下ProGuard的规则文件:

-assumenosideeffects class android.util.Log { 
    public static boolean isLoggable(java.lang.String, int); 
    public static int v(...); 
    public static int i(...); 
    public static int w(...); 
    public static int d(...); 
    public static int e(...); 
}