Android中如何控制LogCat的自定义输出

在Android开发中,LogCat是一个非常重要的调试工具,可以输出很多关于项目或者手机的信息。但是正是由于LogCat功能的过于强大,输出的信息量也是极为庞大的,那么我们就需要通过一定的方式根据我们的需要限定LogCat的输出,这样才能使LogCat帮我们起到更好的调试代码的作用。

LogCat输出的类型一般有五种,分别是verbose,debug,info,warn,error。其中verbose的最为宽泛,如果选择verbose,那么就会向下兼容输出verbose,debug,info,warn,error。如果选择debug,就会向下兼容输出debug,info,warn,error。以此类推。一般可以通过Eclipse下方的调试区域进行选择。如图所示:

其中在代码中使用Log方法进行输出时,也可以控制输出不同的内容。对应的也有5种不同的Log方法。Log.v("","").Log.d("","").Log.i("","").Log.w("","").Log.e("",""). .在实际开发中,可以根据自己的需求进行不同的打印输出。

其实不仅可以通过标签的选择,或者方法的选择,来对这五大类Log进行控制显示,Android中还为我们提供了精确的Log查找。如下图所示:“Search for messages.Accepts Java regexes.Prefix with pid:,app:,tag: or text: to limit scope”.即我们可以通过使用进程ID,项目包名,tag标签,text输出文本;来限制输出范围。而且这里可以进行动态的修改,动态的显示。非常方便。我来一一进行演示。

(1)使用pid进程ID号限制输出

如果当前在你的工作空间中包含着多个项目,并且多个项目不断在运行,此时在你的LogCat中打印的内容可能包含着多个不同的项目,当然不同的项目的进程ID是不同的,我们就可以通过ID来限制输出。

没有进行输出控制前:

通过pid:5344     进程ID来控制输出。因为我可以通过任务管理器或者大致浏览LogCat输出知道当前这个应用程序的进程ID是多少。下面是pid:5344控制输出后的结果。发现结果明显变少了。很方便我们观察仅仅是这个项目的输出结果。

(2)使用app包名全称限制输出

使用app的名字更准确说是包名来限制输出也是比较精确的。包名也可以唯一标识一个应用程序。

没有进行输出控制前:

通过应用程序包名app:com.example.logcatdemo   进行控制输出,注意保命必须是完整的包名。

(3)使用tag标签限制输出

在使用Log方法进行打印的时候。Log.i("标签","打印值"),第一个参数是tag标签,可以通过使用tag:标签值,来唯一标识某条输出,精确到某一条具体输出。

进行tag控制后的输出结果:

(4)使用输出文本限制输出

如果你在调试过程中已经知道会输出什么内容,你可以直接通过文本查找的方式进行显示控制,如我的输出为“LogCat测试输出”,我就可以来进行限制:

.

通过以上四种方式可以动态的进行输出的查找,是比较方便的。当然也可以通过点击左侧的绿色加号,在弹出的对话框中进行Log控制也是可以的,实现方式同上面4种。如图所示。大家可以自己尝试一下哦。

熟练掌握使用Log输出和LogCat调试,将会大大提高我们的开发效率。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-05 22:29:50

Android中如何控制LogCat的自定义输出的相关文章

Java/Android中的函数调用&回调函数&自定义回调函数

在做Android自定义控件时遇到要自定义回调函数的问题,想想自己还暂时没有那么精深的技术,赶紧返过头回来再重新研究Java中回调函数的问题.然而不幸的是,网上太多杂乱的帖子和博客都是转来转去,而且都是那一篇"C中的回调函数.....指针.....java....",一点看不出来是自己的思路,估计都是哪哪哪抄来的!(呵呵,要么就是吐槽对了,要么就是我水平太烂读不懂还妄加评论)还有一些很不错的文章,我会在最后参考中加上链接,大家可以看看. 那么来开始我们的正题--什么是回调函数? 我们一

Android中ListView与RadioButton结合----自定义单选列表

有时候我们需要制作自定义的单选列表,但是会遇到一些问题,比如多选,假选问题,所以网上找了找资料,整理一个demo出来,贴一下代码: <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true&qu

Android中的Drawable菠菜bc网站搭建架设基础与自定义Drawable

6.gravity属性详情 可选项 含义top/bottom/left/right 将图片放在容器上/下/左/右,不改变图片大小center_vertical/horizontal 垂直居中/水平居中,不改变图片大小center 水平和垂直方向同时居中,不改变图片大小fill_vertical/horizontal 垂直/水平方向填充容器fill 水平和垂直方向同时填充容器clip_vertical/horizontal 垂直/水平方向的裁剪-较少使用7.NinePatchDrawable(.9

Android中使用ListView绘制自定义表格(2)

上回再写了<Android中使用ListView绘制自定义表格>后,很多人留言代码不全和没有数据样例.但因为项目原因,没法把源码全部贴上来.近两天,抽空简化了一下,做了一个例子. 效果图如 一.功能: 1.支持列合并 2.考虑了界面刷新优化 3.预留部分接口 4.支持左右滚动 1.枚举类:CellTypeEnum package csdn.danielinbiti.custometableview.item; public enum CellTypeEnum { STRING //字符 ,DI

android中自定义view涉及到的绘制知识

android中自定义view的过程中,需要了解的绘制知识. 1.画笔paint: 画笔设置: <span style="font-size:14px;"> paint.setAntiAlias(true);//抗锯齿功能 paint.setColor(Color.RED); //设置画笔颜色 paint.setStyle(Style.FILL);//设置填充样式 paint.setStrokeWidth(30);//设置画笔宽度 paint.setShadowLayer(

几种在shell命令行中过滤adb logcat输出的方法

我们在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流之中,让开发者无所适从,严重影响开发效率.本文就具体介绍几种在shell命令行中过滤adb logcat输出的方法. 1.只显示需要的输出(白名单) 最方便的当然是通过管道使用 grep 过滤了,这样可以使用 grep 强大的正则表达式匹配.简单的匹配一行当中的某个字符串,例如 MyApp: adb logcat | grep MyApp       adb logcat | grep -i

Android中GPU硬件加速控制及其在2D图形绘制上的局限

图形的渲染可分为两种:软件渲染和硬件渲染.软件渲染是靠CPU计算各种坐标并绘制,主要是占用内存:硬件渲染是靠GPU,主要占用显存,一般的3D图形程序(OpenGL.DirectX)都是GPU加速的. 在Android3.0之前,2D绘图API只支持软件渲染模式,从Android3.0开始,2D绘图API开始支持GPU硬件渲染,即View中的Canvas的绘图操作会使用GPU,所以从Android 3.0(API Level 11)开始,View中就多了一些和硬件相关的方法.如果App的Andro

Android中的Audio播放:控制Audio输出通道切换

Audio 输出通道有很多,Speaker.headset.bluetooth A2DP等.通话或播放音乐等使用Audio输出过程中,可能发生Audio输出通道的切换.比如,插入有线耳机播放音乐时,声音是从耳机发出的:而此时拔出耳机,Audio输出通道会发生切换.如果音乐播放器不做处理,Audio输出是被切换到扬声器的,声音直接从Speaker发出.我们在编写程序时,要捕获并按照需求来处理这样的事,本文就是讲解如何处理的. Android中可以通过android.media.AudioManag

Android中自定义View、ViewGroup理论基础详解

Android自身提供了许多widgets,但是有时候这些widgets并不能满足我们的需求,这时我们就需要自定义View,本文会详细说明自定义View的各种理论基础,只有理解了这些知识,我们才能更好地实现各种功能的控件. 我觉得自定义View中最重要的部分就是绘图和交互,自定义的绘图使得你的View与众不同,交互使用户可以与你的View进行交互,而绘图的前提是View的量算与布局,交互的基础是触摸事件,所以量算.布局.绘图.触摸事件这些是自定义View的核心. 除此之外,一个设计友好的自定义V