发布应用程序前是否应禁用日志记录?

4

我即将发布一个应用程序。在catch语句中,我应该删除Log语句和e.printStackTrace()吗?

4个回答

4

日志是必不可少的故障排查资源,即使是已部署的软件。

我建议在生产发布中限制日志记录(甚至仅在紧急情况下记录),但我不会绝对地说“不记录日志”。

这里有一个很好的讨论(包括一些很好的指南):

PS: 话虽如此,我还是要强调:

不,你不应该在生产版本中有任何“调试”或“信息”日志记录。

这正是Android文档所述,并在上述链接中引用。


2

这通常被认为是一种良好的实践,因为:

  • 如果您的日志语句被包含在调试标志下的if语句中,并且您将该标志设置为false,则在编译项目时,这些语句会自动被省略,从而减少apk的大小,尽管不会减少很多。
  • 由于日志与其他应用程序共享,因此考虑到不要在生产应用程序中使用这些消息,因为这会在其他开发人员调试时混乱他们的logcat。
  • 有时,您可能会记录敏感数据,例如签名、密钥、密码、电子邮件、用户名等。禁用日志记录可以防止您的应用程序意外泄露此类信息。

1
有时启用日志记录可能会导致安全问题。大多数Android应用程序不需要担心这个问题,原因有几个,但我个人建议养成禁用开发人员功能的习惯,除非您希望用户帮助您在其他设备上调试问题,但根据我的经验,这并不是常见做法。

0

答案是

您可以通过向proguard.cfg文件添加一些行来隐藏它们。

-keep class * extends android.app.Activity
-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** e(...);
    public static *** i(...);
}

应用程序签名后,没有人能够阅读调试、错误和信息日志。 希望它能正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接