Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么以及何时应该使用android日志类?_Android_Logging - Fatal编程技术网

为什么以及何时应该使用android日志类?

为什么以及何时应该使用android日志类?,android,logging,Android,Logging,为什么和什么时候我应该使用android日志?它应该仅用于调试目的吗?在我看来,如果保留在生产应用程序中,它会大大降低速度 我问题的一个关键部分是,什么时候应该使用它……在什么情况下我应该需要它?是否有使用此功能的“最佳实践” 这可能是一个非常愚蠢或业余的问题,但我从未理解使用它的必要性,也从未觉得有必要使用它。我可能遗漏了什么 另外,我已经知道错误/verbose/info/etc的日志记录是不同的,有些在不调试时会被丢弃。请不要在没有解释原因的情况下重复课堂概述中的信息。谢谢 我同意你的看

为什么和什么时候我应该使用android日志?它应该仅用于调试目的吗?在我看来,如果保留在生产应用程序中,它会大大降低速度

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

这可能是一个非常愚蠢或业余的问题,但我从未理解使用它的必要性,也从未觉得有必要使用它。我可能遗漏了什么


另外,我已经知道错误/verbose/info/etc的日志记录是不同的,有些在不调试时会被丢弃。请不要在没有解释原因的情况下重复课堂概述中的信息。谢谢

我同意你的看法,我也从未真正使用过它。我更喜欢调试而不是日志读取(单元测试而不是调试),当我试图弄清楚发生了什么并得到一个错误时

有些人认为,当应用程序崩溃并出现异常时,记录“其他详细信息”可能很有用,但我通常会回答他们,异常本身应该在必要时保存这些额外的详细信息,并在其getMessage中公开它们。因此,LogCat中包含的默认堆栈跟踪足以查看发生了什么

但是无论如何,能够记录一些东西总是很好的,尽管我还没有发现它真的有用,但你永远不知道它什么时候会有用:)

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

前几天我使用了日志记录,我启动了另一个线程来做一些工作,但我需要检查线程中生成的一些数据,没有日志记录或显示
Toast
,我如何获得值?我以前尝试过在Eclipse中调试/单步执行代码,但遇到了几个问题


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

通常只有在知道有错误时才进行调试。(当您知道时,您可以编写其他测试用例。)

通过日志记录(例如,在信息级别),您可以添加一些附加信息来跟踪应用程序中的数据。这可以让你发现出了什么问题。 因此,它增加了一个更高层次的概述


此外,它可以很容易地禁用,不会显著降低应用程序的速度(如果),因此可能提供另一种方法来查看是否一切都正常工作,没有什么缺点,也有一些优点。(另请参见,特别是中的链接。)

在Android网站的发布页面上,它说你应该评论/删除所有日志记录-这样就不会在生产中使用(或至少不应该使用)。看到生产手机中有多少日志记录没有关闭,这很有趣。非常非常有趣的消息有时会被登录,这些消息总是给我希望,我可能不是有史以来最糟糕的Android程序员。这根本不是一个愚蠢的问题。许多人在他们的代码中使用它(如在线教程等),但从来没有提到它的重要性您在调试时遇到的问题本可以而且应该得到解决:调试通常比记录日志更有效,以了解引擎盖下发生了什么,尽管在多线程环境中正确地获取它有时是一件痛苦的事情。在理想情况下,如果单元测试覆盖率足够好,那么您不需要日志记录也不需要调试。这一点是正确的,但请解释:“为了了解引擎盖下发生的事情,调试通常比日志记录更有效”,为什么会这样呢?嗯,原因有很多:如果您仔细地一步一步地进行,您可以准确地看到线程所遵循的路径(使用普通日志记录可能非常困难),当您逐步完成时,您可以详细查看任何变量状态,包括以下依赖项,或者在运行时计算任何表达式,这对于检查特定实例的状态非常重要,还有一个很好的例子是条件断点:例如,您可以在调试模式下运行并说“每当抛出RuntimeException时停止”,您将看到抛出的位置、变量的状态等。
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.