【问题标题】:Android Log LevelsAndroid 日志级别
【发布时间】:2023-03-21 05:07:01
【问题描述】:

Android 支持各种日志级别,Verbose、Debug、Info、Warn 和 Error。我了解日志记录级别的工作原理;我对给定级别的预期典型输出更感兴趣。

例如,在开发应用程序时,我可能会好奇某个方法在做什么(这通常是出于调试目的)。我将查看日志以确保方法以预期的顺序被调用、网络响应是否符合我的想法、解析器是否找到正确的信息等等。

为什么有人会使用 Verbose vs Debug vs Info?

从开发人员的角度来看,第一、第二或第三方应用程序的日志不都是用于调试目的吗? (假设开发人员不会为了好玩而盯着日志...我没那么虐待狂)

从消费者的角度来看,当 s*** 击中粉丝并且他们需要联系客户支持,因为他们的超级重要/关键业务应用程序无法运行时,开发人员会使用日志进行调试。

我可以看到使用详细或信息的唯一原因可能是指标收集/数据仓库相关操作。如果是这样,为什么要使用详细与信息。

不确定我是否过于复杂,或者android框架是否......

【问题讨论】:

  • 我一直在代码中使用调试、警告和错误。当我只想快速检查一个变量或其他东西时进行调试,当我想查看是否发生了允许但我可能不喜欢的事情时发出警告,当它是非常糟糕并且需要更改时的错误代码,但可能不会被基本错误检查拾取,或者您不想因为错误而终止代码。

标签: android logging


【解决方案1】:

在考虑日志记录级别时,我基本上遵循 Tomasz Nurkiewicz has to say 的内容:


错误——发生了严重错误,必须立即调查。没有系统可以容忍在此级别上记录的项目。示例:NPE、数据库不可用、任务关键用例无法继续。

警告 - 该过程可能会继续,但要格外小心。示例:“应用程序在开发模式下运行”或“管理控制台未使用密码保护”。应用程序可以容忍警告消息,但应始终对其进行证明和检查。

INFO – 重要的业务流程已完成。在理想情况下,管理员或高级用户应该能够理解 INFO 消息并快速找出应用程序在做什么。例如,如果一个应用程序都是关于预订机票的,那么每张机票应该只有一个 INFO 声明,上面写着“[Who] 从 [Where] 到 [Where] 预订了机票”。 INFO 消息的其他定义:显着改变应用程序状态的每个操作(数据库更新、外部系统请求)。

调试 - 开发人员的东西。

VERBOSE – 非常详细的信息,仅用于开发。在生产环境中部署后,您可能会在短时间内保留跟踪消息,但将这些日志语句视为临时的,应该或可能最终关闭。 DEBUG 和 VERBOSE 的区别是最难的,但是如果你在特性开发和测试后把日志语句去掉,它应该是 VERBOSE 级别的。


我最喜欢的级别是 WTF(2.2+),它应该代表“多么可怕的失败”,表示不应该发生的情况。

我通常将“信息”用于简单的消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-04
    • 2011-05-06
    • 2017-08-23
    • 2015-06-23
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    相关资源
    最近更新 更多