Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.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

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支持各种日志级别、详细、调试、信息、警告和错误。我了解日志记录级别是如何工作的;我更感兴趣的是给定级别的预期典型输出 例如,在开发应用程序时,我可能会好奇某个方法在做什么(这通常是为了调试目的)。我将查看日志,以确保按照预期的顺序调用方法,如果网络响应是我认为应该的,如果解析器找到正确的信息,等等 为什么会有人使用冗长vs调试vs信息 从开发人员的角度来看,对于第一方、第二方或第三方应用程序,并非所有日志都用于调试目的?(假设开发人员不会盯着一个日志找乐子……我不是那么虐待狂) 从

Android支持各种日志级别、详细、调试、信息、警告和错误。我了解日志记录级别是如何工作的;我更感兴趣的是给定级别的预期典型输出

例如,在开发应用程序时,我可能会好奇某个方法在做什么(这通常是为了调试目的)。我将查看日志,以确保按照预期的顺序调用方法,如果网络响应是我认为应该的,如果解析器找到正确的信息,等等

为什么会有人使用冗长vs调试vs信息

从开发人员的角度来看,对于第一方、第二方或第三方应用程序,并非所有日志都用于调试目的?(假设开发人员不会盯着一个日志找乐子……我不是那么虐待狂)

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

我认为使用verbose或info的唯一原因可能是度量收集/数据仓库相关操作。如果是这样,为什么要使用详细的vs信息


我不确定我是在过度复杂化,还是android框架

在考虑日志记录级别时,我基本上遵循了Tomasz Nurkiewicz的观点:


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

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

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

调试-开发人员的东西

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


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


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

我在代码中一直使用调试、警告和错误。当我只想快速检查变量或某事时使用调试,当我想查看是否发生了允许但我可能不喜欢的事情时使用警告,当事情非常糟糕并且需要在代码中更改但可能不需要更改时使用错误通过基本的错误检查,或者你不想因为错误而杀死你的代码。