android的log.v,Android Log.v(),Log.d(),Log.i(),Log.w(),Log.e() - 何时使用每一个?

本文探讨了在Android开发中如何有效地使用不同级别的日志(V, D, I, W, E)进行调试和性能优化。建议在不同阶段使用不同日志级别,并强调在不影响系统性能的情况下确保关键错误的记录。通过限制日志输出和合理使用过滤器,可以在保持可读性的同时避免日志资源的滥用。
摘要由CSDN通过智能技术生成

John Michela..

18

不同的方法是优先权的指示.正如你已经列出的那样,它们从最不重要到最重要.我认为你如何将它们专门映射到代码中的调试日志取决于你正在处理的组件或应用程序,以及Android如何在不同的构建版本(eng,userdebug和user)上处理它们.我在Android中的原生守护进程中做了大量的工作,这就是我的工作方式.它可能不会直接应用于您的应用,但可能存在一些共同点.如果我的解释听起来含糊不清,那是因为其中一些更像是一门艺术,而不是一门科学.我的基本规则是尽可能高效,确保您可以合理地调试组件而不会破坏系统的性能,并始终检查错误并记录它们.

V - 以不同的间隔打印状态,或者在我的组件处理的任何事件发生时.也可能非常详细地打印我的组件接收或发送的消息/事件的有效负载.

D - 组件中发生的次要事件的详细信息,以及组件接收或发送的消息/事件的有效负载.

I - 组件接收或发送的任何消息/事件的标头,以及对组件操作至关重要的有效负载的任何重要部分.

W - 发生任何不寻常或可疑的事情,但不一定是错误.

E - 错误,意味着当事情按预期工作时不应发生的事情.

我看到人们犯的最大错误是他们过度使用V,D和I之类的东西,但从不使用W或E.如果错误是,根据定义,不应该发生,或者应该只发生很少,那么它是非常的当它发生时,便宜你记录消息.另一方面,如果每次有人按下一个键你都会执行Log.i(),那么你就会滥用共享的日志记录资源.当然,使用常识并小心控制之外的事情(如网络错误)或紧密循环中包含的错误日志.

也许不好

Log.i("I am here");

Log.e("I shouldn't be here");

考虑到所有这些,您的代码越接近"生产就绪",您就越能限制代码的基本日志记录级别(您需要在alpha中使用V,在beta中使用D,在生产中使用D,或者在生产中使用甚至W) ).您应该运行一些简单的用例并查看日志,以确保在应用更严格的过滤时,您仍然可以大部分了解正在发生的情况.如果您使用下面的过滤器运行,您仍然可以告诉您的应用正在做什么,但可能无法获得所有详细信息.

logcat -v threadtime MyApp:I *:S

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值