为什么以及何时应该使用Android Log类?

时间:2011-12-06 10:41:30

标签: android logging

为什么以及何时应该使用android Logging?它应该仅用于调试目的吗?在我看来,如果保留在生产应用程序中,它会大大减慢它。

我的问题的一个关键部分是什么时候应该使用......在什么情况下我应该需要它?使用它有什么“最佳实践”吗?

这可能是一个非常愚蠢或业余的问题,但我从未明白需要或感到被迫使用它。我可能会遗漏一些东西。

http://developer.android.com/reference/android/util/Log.html

另外 - 我已经知道对于errors / verbose / info / etc的日志记录是不同的,有些在不调试时会被丢弃。请不要重复课堂概述中的信息而不给我解释原因。谢谢!

3 个答案:

答案 0 :(得分:3)

我同意你的观点,我也从未真正使用它。我更喜欢调试而不是日志阅读(和单元测试而不是调试),当试图找出什么是发生并收到错误。

有些人认为当应用程序崩溃并获得异常时记录“其他详细信息”会很有用,但我通常会回复它们,异常本身应该在必要时保留其他详细信息,并在其getMessage中公开它们。因此,LogCat中包含的默认堆栈跟踪足以查看正在发生的事情。

但无论如何,有可能记录某些东西总是很好,即使我到目前为止还没有发现它真的有用,你永远不知道它什么时候可以帮助:)

答案 1 :(得分:0)

关于我的评论,请参阅Preparing for Release。 (显示日志记录应在发布前删除,因此不在生产中使用)。

Turn off logging and debugging

Make sure you deactivate logging and disable the debugging option before you build your
application for release. You can deactivate logging by removing calls to Log methods
in your source files.

我前几天使用了日志,我开了另一个线程来做一些工作但是我需要检查线程中生成的一些数据,而不记录或显示Toast,我怎么能得到这些值?我之前尝试过调试/逐步调试Eclipse中的代码,并遇到几个问题。

通过日志记录,我可以记录每个值,查看logcat并确切知道我的代码在做什么。

答案 2 :(得分:0)

通常只有在知道出现问题时才进行调试。 (当您知道时,您可能会编写其他测试用例。)

使用日志记录(例如,在INFO级别),您可以添加一些其他信息来跟踪应用程序中的数据。这使您可以发现 错误。 因此,它增加了更高级别的概述。

此外,它可以轻松禁用,不会显着降低应用程序速度(如果done right),并可能因此提供另一种方法来查看一切是否正常,缺点和优点。 (另请参阅Logging vs. Debugging,尤其是@smonff's answer中的链接。)