如何获取 android logcat怎么看的系统日志 logcat

雨松MOMO 的BLOG
用户名:雨松MOMO
文章数:88
评论数:172
访问量:1516909
注册日期:
阅读量:26136
51CTO推荐博文
&Android软件开发之在程序中时时获取logcat日志信息
&&&&&&& 各位大小盆友们晚上好,由于这周在公司连续加了5天通宵班,项目实在太紧了。还好MOMO没有挂到公司顺利的回到了温暖的家嘎嘎。不过MOMO还是不忘大伙们 哇咔咔~~ 一回来就更新博客,分享一个在软件开发中很实用的例子,也是这几天在通宵加班中我使用的一个小例子, 在程序中监听Log信息。
&&&&&&& 为什么说它实用?原因是Android的开发厂商各种修改之后手机和手机之间以后存在很多差异。比如说魅族M9手机 开发中如果项目中涉及到访问手机系统的地方,例如访问系统短信库,M9手机它会提示一个dialog框 让用户自己去选择 访问还是不访问。这样就给开发适配带来了巨大的麻烦。本来在这里直接能拿到数据可是现在我须要对用户的选择进行监听?& 以后的小米手机肯定也会有这个问题~ 悲剧啊~~最后在这里这里我选择使用监听LOG信息来监听用户点击按钮授权与不受权。
1.获取手机型号信息
//获取机型名称
android.os.Build.MODEL
//获取SDK信息
android.os.Build.VERSION.SDK&
//获取版本号
android.os.Build.VERSION.RELEASE
那么代码中就可以这样写
if&(android.os.Build.MODEL.equals(&meizu_m9&)){&&&&&&&System.out.println(&我是M9手机&);&&&}&&
2.Logcat说明
Android开发中一共有5个log信息过滤器 分别是 VERBOSE 、DEBUG、 INFO、 WARN、 ERROR,这些各位盆友们应该都知道吧,不知道给我留言哈~~
请各位盆友们观察下面的代码,内容为监听一个按钮点击事件一旦点击后输出一段Logcat信息,为了监听系统打印的这个log信息我们开启一个线程在后台去监听它。
&&&@Override&&&&&&public&void&onCreate(Bundle&savedInstanceState)&{&&&super.onCreate(savedInstanceState);&&&setContentView(R.layout.check);&&&&&&&&&button&=&(Button)findViewById(R.id.button0);&&&&&&&&&button.setOnClickListener(new&OnClickListener()&{&&&&&&&&&&&&&&@Override&&&&&&&public&void&onClick(View&view)&{&&&&&&&&&&&&&&Log.i(&Mytest&,&&this&is&a&test&);&&&&&&&&&&&&&&&&&&&&&new&Thread(CheckActivity.this).start();&&&&&&&}&&&});&&&&&&&&&&&&}&&
线程开启以后Runtime主要用于过滤logcat信息,这里主要说一下里面的参数&
&logcat&不用说了吧,我们就是要监听它 呵呵。
&Mytest& 表示监听的Tag 这里以上面点击按钮输出的LOG信息为例。
&I&表示监听的Log类型,当然这里还可以写其它类型 。VERBOSE(v) 、DEBUG(d)、 INFO(i)、 WARN(w)、 ERROR(e), 不过须要与监听的与Tag一一对称才可以。
&*:s&表示监听所有的信息,这里表示只要tag是Mytest ,Logcat类型为i 的 所有Log都会被获取到。
然后将所有过滤出来的log信息存在 BufferReader中 调用readLine()可以获取到每一行的log信息。
line.indexOf(&this is a test&) 如果大于等于0 表示当前获取的log信息包含我们上面点击按钮的。
这样子就可以监听各种LOG 无论是我们自己写的还是系统写的都可以监听到 哇咔咔~~
最后用Toast将内容显示出来,因为在线程中所以必需使用Lopper不太了解的盆友请看Android游戏开发之多线程的操作方式(二十六)
&&@Override&&&&&&public&void&run()&{&&&Process&mLogcatProc&=&null;&&&BufferedReader&reader&=&null;&&&try&{&&&&&&&&&&&&&&&&mLogcatProc&=&Runtime.getRuntime().exec(new&String[]&{&&logcat&,&Mytest:I&*:S&&});&&&&&&&reader&=&new&BufferedReader(new&InputStreamReader(mLogcatProc.getInputStream()));&&&&&&&&&&String&&&&&&&&&&&&&&&while&((line&=&reader.readLine())&!=&null)&{&&&&&&&&&&&&&&&&&&&&&&if&(line.indexOf(&this&is&a&test&)&&&0)&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Looper.prepare();&&&&&&&&&&&&&&&&&Toast.makeText(this,&&监听到log信息&,&Toast.LENGTH_SHORT).show();&&&&&&&&&&&&&&&&Looper.loop();&&&&&&&&&&&&&}&&&&&&&}&&&&&&}&catch&(Exception&e)&{&&&&&&&&&&e.printStackTrace();&&&}&&&&&&&&&}&&&
最重要的一定要加读取系统LOG的权限喔,否则是监听不到的。
&android:name=&android.permission.READ_LOGS&&&&&
最后还是老规矩每篇文章都会附带源代码,最后如果你还是觉得我写的不够详细 看的不够爽 不要紧我把源代码的下载地址贴出来 欢迎大家一起讨论学习雨松MOMO希望可以和大家一起进步。
下载地址:/data/259343
本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
15:48:40 09:33:30 09:33:56 13:38:29 10:28:56 17:14:55 18:01:12 17:08:12扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Android软件开发之在程序中时时获取logcat日志信息(三十三)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口日志工具 LogCat - Android Studio 单刷《第一行代码——Android》系列_Linux编程_Linux公社-Linux系统门户网站
你好,游客
Android Studio 单刷《第一行代码——Android》系列
日志工具 LogCat
来源:Linux社区&
作者:DebugLife
前情提要(Previously)
本系列将使用
Studio 将《第一行代码》(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android Studio 作为开发 IDE 的同学开路。PS:其实我就是现学现卖,希望我能坚持刷完。
在第一战中,我们创建了第一个App project, Hello World,并分析了项目结构,及运行原理。
摘要(Abstract)
必备技能,使用日志工具 LogCat,并尝试解决真机调试没有日志的问题。
日志工具(LogCat)
日志在任何项目的开发过程中都会起到非常重要的作用,在 Android 项目中如果你想要查看日志则必须要使用 LogCat 工具。
在 Android Studio 最下方的 Status Bar 中找到 6:Android,点击她。如下图
LogCat 出现了,如下图
这里选择 Devices,当然一般来说不需要选择,如果只连接了一个设备的话。
这里选择 Log level,日志级别。包括:Verbose、Debug、Info、Warn、Error、Assert。以上级别依次升高。
这里选择过滤器,默认会自动生成一个过滤条件是 Package name 是项目包名的过滤器。
使用 LogCat
Android 中的日志工具类是 Log(android.util.Log),提供了如下的几个方法供我们打印日志。
Log.v() 对应 Verbose
Log.d() 对应 Debug
Log.i() 对应 Info
Log.w() 对应 Warn
Log.e() 对应 Error
Log.wtf() 在输出日志的同时,会把此处代码此时的执行路径(调用栈)打印出来。
介绍完毕,我们来演戏一下吧。打开 HelloWorldActivity,在 onCreat()方法中添加一行打印日志的语句,为了让日志明显一点我加了一些下划线,如下所示:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hello_world);
Log.d("HelloWorldActivity","______________onCreate execute______________");
Log.d() 方法中传入了两个参数,第一个参数是 tag,一般传入当前的类名就好,主要用于对打印信息进行过滤。第二个参数是 msg,即想要打印的具体内容。
现在重新运行一下项目,点击工具栏中的绿色小箭头,或者按 Shift+F10。等程序运行完毕,使用模拟器的战友可能已经能看到日志了,如下图
使用真机的战友,可能看到的还是空荡荡的LogCat。需要做这么一件事,菜单栏 Tools & Android & Enable ADB Integration 把这个勾上,然后再次运行。
这次应该能看到日志了吧?看看能不能找到我们想要打印出来日志信息。过滤器中一定要选中 app:com.xxxx.helloworld 哦。如果有日志,但是找不到我们想要打印的日志 HelloWorldActivity: ______________onCreate execute______________,那么恭喜你,你用的真机貌似跟我的一样比较高端,是不是有什么黑科技。
我们来尝试解决这个问题。
手机的开发人员选项打开了么,其中的 USB 调试打开了么?搞定他们并重新运行,是否能找到我们的日志?否,转到 2。
日志中是否有这样 could not disable core file generation for pid 3963: Operation not permitted 的信息么? 是,转到 3;否,那我也不知道怎么搞,或者你可以把日志贴到评论中我看看。
是华为手机么?是,转到 4;否,你可以参考 4 自己 Google Baidu 一下。
在拨号界面输入:*#*#2846579#*#* 进入测试菜单界面,然后Project Menu & 后台设置 & LOG设置LOG 开关 & LOG 打开& & & & LOG 级别设置 & VERBOSEDump&Log & 全部选中重启手机,重启 Android Studio。PS:根据系统版本的不同,可能会有些许差异。
重启完毕,打开 Android Studio,运行项目,这下应该能找到我们的日志了。如果还没找到,对不起洗洗睡吧,我只能帮到这儿了。(或者你可以换个手机)
定制过滤器(Filter)
点击过滤器那个下拉框,选择 Edit Filter Configuration,在弹出的对话框中点击左上角的加号新创建一个 Filter。如下图
含义如下:
Name:Filter 名称
by Log Tag: 通过日志的 tag 过滤
by Log Message:通过日志的 msg 内容过滤
by Package Name:通过包名过滤
by PID:通过PID过滤
by Log Level:通过日志等级过滤
regex:表示可以使用正则表达式进行匹配
以上过滤条件可以组合。
我建了一个data的过滤器,过滤条件是 tag 等于 data。将 Filter 选择为 data,我们的日志不见了,因为匹配不到 tag 等于 data 的日志。
现在去把我们在 onCreate() 方法中的日志的 tag 改为 data。如下所示:
Log.d("data","______________onCreate execute______________");
然后重新运行,将 Filter 选择为 data,我们的日志出现了。当然还可能会有一些奇奇怪怪的日志也出现了,仔细看看 tag 中都包含有 data。
抑制不住的好奇心
看看这个 Android Studio 最下方的 Status Bar,我们找到 LogCat 的地方,如下图
难道你们不好奇为什么 Android 前面有个 6 么?难道是因为用了 LogCat 你的 Android 开发水平就会 ?
不管发生什么事件,我相信真相只有一个,如下图:
OK,收工了。2
【内容导航】
相关资讯 & & &
& (昨 07:55)
& (07月31日)
& (07月28日)
& (08月03日)
& (07月30日)
& (07月26日)
图片资讯 & & &}

我要回帖

更多关于 android logcat 命令 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信