Android Log.v(),Log.d(),Log.i(),Log.w(),Log.e()

廉价感情. 提交于 2020-03-20 19:47:00

3 月,跳不动了?>>>

不同的LogCat方法是:

Log.v(); // Verbose
Log.d(); // Debug
Log.i(); // Info
Log.w(); // Warning
Log.e(); // Error

使用每种类型的日志记录的适当情况是什么? 我知道也许这只是一些语义,也许它并不重要,但对于Android Studio和Eclipse中的LogCat过滤,我很高兴知道我在适当的时候使用了正确的方法。


#1楼

源代码提供了一些基本指导:

详细程度的顺序,从最小到最多,是ERROR,WARN,INFO,DEBUG,VERBOSE。 除了在开发期间,不应该将详细编译到应用程序中。 调试日志在运行时编译但被剥离。 始终保留错误,警告和信息日志。

更多细节,Kurtis的答案已经过去了。 我想补充一点:不要在INFO或以上( WARN / ERROR )记录任何个人身份信息或私人信息。 否则,错误报告或包含日志记录的任何其他内容可能会受到污染。


#2楼

Android Studio网站最近(我认为)提供了一些建议,从Kurtis的回答中可能有用的不同日志级别期望什么样的消息:

  • 详细 - 显示所有日志消息(默认)。
  • 调试 - 显示仅在开发期间有用的调试日志消息,以及此列表中较低的消息级别。
  • 信息 - 显示常规使用的预期日志消息,以及此列表中较低的消息级别。
  • 警告 - 显示尚未出现错误的可能问题,以及此列表中较低的消息级别。
  • 错误 - 显示导致错误的问题,以及此列表中较低的消息级别。
  • 断言 - 显示开发人员期望永远不会发生的问题。

#3楼

你可以使用LOG如:

Log.e(String, String) (error)
Log.w(String, String) (warning)
Log.i(String, String) (information)
Log.d(String, String) (debug)
Log.v(String, String) (verbose)

示例代码:

private static final String TAG = "MyActivity";
...
Log.i(TAG, "MyClass.getView() — get item number " + position);

#4楼

虽然这个问题已经回答了,但我觉得答案中有缺少的例子。

因此,我将把我在博客文章“Android Log Levels”中写的内容带到这里

详细

是最低级别的日志记录。 如果你想坚持记录,那么你就可以使用这个级别了。 我从来不知道何时使用Verbose以及何时使用Debug。 差别对我来说非常武断。 一旦我指出Android¹的源代码,我终于理解了“除了在开发过程中,不应该将Verbose编译成应用程序。”现在我很清楚,无论何时开发并想要添加可删除的日志来帮助你开发有用的是详细级别,这有助于您在投入生产之前删除所有这些日志。

调试

用于调试目的。 这是生产中应该达到的最低水平。 这里的信息是在开发过程中提供帮助。 大多数情况下,您将禁用此生产日志,以便发送较少的信息,并且只有在出现问题时才启用此日志。 我喜欢登录调试应用程序从服务器发送/接收的所有信息(注意不要记录密码!!!)。 这对于了解错误是在服务器还是应用程序中非常有帮助。 我还会记录进入和退出重要功能的日志。

信息

有关突出显示应用程序进度的信息性消息。 例如,当应用程序的初始化完成时。 当用户在活动和片段之间移动时添加信息。 记录每个API调用,但只记录URL,状态和响应时间等信息。

警告

当存在潜在的有害情况时。

这个日志在我的经历中是一个棘手的水平。 你什么时候有潜在的有害情况? 一般情况下或它是好的或它是一个错误。 我个人不太喜欢这个级别。 我使用它的例子通常是多次发生的事情。 例如,用户的密码错误超过3次。 这可能是因为他错误地输入了3次密码,也可能是因为我们的系统中没有接受某个字符存在问题。 网络连接问题也是如此。

错误

错误事件。 错误后应用程序仍可继续运行。 这可能是例如当我得到一个空指针,我不应该得到一个。 解析服务器的响应时出错。 从服务器收到错误。

WTF(多么可怕的失败)

致命是导致应用程序退出的严重错误事件。 在Android中,致命的是实际上的错误级别,不同之处在于它还添加了fullstack。


#5楼

我们按相反顺序进行:

  • Log.e :这是为了发生坏事。 在catch语句中使用此标记。 您知道发生了错误 ,因此您正在记录错误。

  • Log.w :当你怀疑阴影正在发生时使用它。 您可能无法在错误模式下完全完整,但也许您从某些意外行为中恢复过来。 基本上,使用它来记录您不希望发生的事情,但不一定是错误。 有点像“嘿,这发生了,而且很奇怪 ,我们应该调查它。”

  • Log.i :使用此命令将有用信息发布到日志中。 例如:您已成功连接到服务器。 基本上用它来报告成功。

  • Log.d :用于调试目的。 如果要打印出大量消息,以便记录程序的确切流程,请使用此方法。 如果要保留变量值的日志,请使用此选项。

  • Log.v :当您想要完全记录日志时使用此选项。 如果由于某种原因您决定在应用程序的特定部分记录每个小东西,请使用Log.v标记。

作为奖励......

  • Log.wtf :当东西绝对可怕时,使用这个,可怕的,神圣的错误。 你知道那些捕获块,你捕获的错误,你永远不会得到...是的,如果你想记录它们使用Log.wtf
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!