6.下Android中日志工具的使用方法

    Android中的日志工具类是Log(android.util.Log),这个类中提供了如下5个方法来供我们打印日志。

1.Log.v()  用于打印那些最为琐碎的、意义最小的日志信息。对应级别verbose,是 Android日志里面级别最低的一种。

2.Log.d()  用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的。 对应级别debug,比verbose高一级。

3.Log.i()   用于打印一些比较重要的数据,这些数据应该是你非常想看到的、可以帮你分 析用户行为数据。对应级别info,比debug高一级。

4.Log.w()  用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好去修 复一下这些出现警告的地方。对应级别warn,比info高一级。

5.Log.e()  用于打印程序中的错误信息,比如程序进入到了catch语句当中。当有错误信息 打印出来的时候,一般都代表你的程序出现严重问题了,必须尽快修复。对应级别error, 比warn高一级

其实很简单,一共就5个方法,当然每个方法还会有不同的重载,但那对你来说肯定不是什么难 理解的地方了。我们现在就在HelloWorld项目中试一试日志工具好不好用吧

      Log.d()传入两个参数,第一个是tag,一般传入当前的类名就好,主要用于对打印信息进行过滤;第二个参数是msg,即想要打印的具体内容。如下图所示:

 其中,你不仅可以看到一些常规的tag和msg信息,就连程序的包名,打印时间及应用程序的进程号都可以看到。我们可以在上方的搜索栏中针对日志中含有的关键字进行过滤。

     为什么使用Log而不使用System.out呢?我相信很多的Java新手都非常喜欢使用System.out.println()    方法来打印日志,不知道你 是不是也喜欢这么做。不过在真正的项目开发中,是极度不建议使 用System.out.println()    方法的!如果你在公司的项目中经常使用这个方法,就很有可能 要挨骂了。 为什么System.out.println()    方法会这么遭大家唾弃呢?经过我仔细分析之后,发现这个 方法除了使用方便一点之外,其他就一无是处了。方便在哪儿呢?在Eclipse中你只需要输入 syso,然后按下代码提示键,这个方法就会自动出来了,相信这也是很多Java新手对它钟情的原 因。那缺点又在哪儿了呢?这个就太多了,比如日志打印不可控制、打印时间无法确定、不能 添加过滤器、日志没有级别区分…… 听我说了这些,你可能已经不太想用System.out.println()    方法了,那么Log就把上面所 说的缺点全部都改好了吗?虽然谈不上全部,但我觉得Log已经做得相当不错了。我现在就来带 你看看Log和logcat配合的强大之处。 

     先看看快捷键输入的方式,如果你想打印一个Log.d(),你只需要输入logd,就会自动补全,以此类推,输入logw,loge等,都会自动补全如下图:

我们看到tag在这里是一个常量,防止我们每次都要重新写一遍tag,那么这个常量在哪呢? 这个也有一个快捷键可以自动生成,在onCreate方法外输入logt,就会自动补全这个常量,如下图所示:

 除了快捷输入外,logcat中还可以轻松的添加过滤器,如下图所示:

目前只有3个过滤器,其中的show only selected application表示只显示当前选中程序的日志,Firebase是谷歌提供的的一个分析工具,我们可以不用管他,No Filters表示没有过滤器,会把所有的日志都打印出来。

Edit Filter Configuration表示可以自定义一个过滤器,我们点击它,会弹出一个过滤器配置界面,我们给过滤器起名为data,并且让他 对名为data的tag进行过滤,如下图所示:

点击ok,我们可以看到过滤器类型中多了一个data类型的过滤器,如下图所示:

      当你点击这个过滤器的时候,你会发现刚 才在onCreate()    方法里打印的日志没了,这是因为data这个过滤器只会显示tag名称为data的 日志。你可以尝试在onCreate()    方法中把打印日志的语句改成Log.d("data","onCreate    execute")    ,然后再次运行程序,你就会在data过滤器下看到这行日志了 。

     看完了过滤器,再来看一下logcat中的日志级别控制吧。logcat中主要有5个级别,分别对应着上 一节介绍的5个方法,如下图所示:

        当前我们选中的级别是verbose,也就是最低等级。这意味着不管我们使用哪一个方法打印日 志,这条日志都一定会显示出来。而如果我们将级别选中为debug,这时只有我们使用debug及 以上级别方法打印的日志才会显示出来,以此类推。你可以做一下试验,当你把logcat中的级别 选中为info、warn或者error时,我们在onCreate() 方法中打印的语句是不会显示的,因为我 们打印日志时使用的是Log.d()    方法。日志级别控制的好处就是,你可以很快地找到你所关心的那些日志。相信如果让你从上千行日 志中查找一条崩溃信息,你一定会抓狂的吧。而现在你只需要将日志级别选中为error,那些不 相干的琐碎信息就不会再干扰你的视线了。
      最后我们再来看一下关键字过滤。如果使用过滤器加日志级别控制还是不能锁定到你想查看的 日志内容的话,那么还可以通过关键字进行进一步的过滤。我们可以在输入框里输入关键字的内容,这样只有符合关键字条件的日志才会显示出来,从而 能够快速定位到任何你想查看的日志。另外还有一点需要注意,关键字过滤是支持正则表达式 的,有了这个特性,我们就可以构建出更加丰富的过滤条件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值