【问题标题】:Remove all Logs at Once一次删除所有日志
【发布时间】:2012-09-18 19:33:02
【问题描述】:

我正在开发一个 android 应用程序,我在其中使用大量日志在控制台打印值以进行调试。现在我在 Android 中使用 Log.i() 方法。现在实际上是什么问题,在我必须给测试团队之前,我必须删除所有日志。当项目中的类数量较少时,我可以手动将其删除。但是当项目包含 40 到 50 个类时,人为不可能去所有类并手动将其删除。那么在 Eclipse 中是否有任何设置可用,以便我可以通过更改单个设置或配置来删除或禁用所有日志,或者是否有任何 jar 文件有助于调试比 Log.i() 方法更容易。任何建议或指导都非常值得赞赏

提前致谢

【问题讨论】:

标签: android


【解决方案1】:

日志将保存在手机上,任何用户/开发人员都可以通过安装Catlog 等应用程序来查看它们,即使不使用 adb!这是一个问题,因为您会向用户/其他开发人员提供不必要的、有时是机密的数据。

解决这个问题的简单方法?

一个。使用Proguard自动屏蔽所有日志,更多信息在this stackoverflow thread

这里可以在Proguard中自动屏蔽字节码级别的所有日志

-assumenosideeffects class android.util.Log {
    public static int v(...);
}

例如,上面会删除任何详细的日志记录,more in this thread

b.我对所有日志都使用 if(DEBUG) Log.i,因此只需更改布尔 DEBUG,我就可以打开/关闭所有日志

此链接引用的此答案 Android hide logs in the application when upload to market

【讨论】:

  • 我将 proguard-project.txt 和 proguard.config=proguard-project.txt 中的行添加到 project.properties 中,并且在打开 Eclipse 的情况下连接到 PC 的设备我总是可以检索日志。这正常吗?