Android调试之Logcat
转贴 http://www.cnblogs.com/adison/p/4264284.html
在Android开发过程中,总免不了要调试,无论是Debug,还是Android自带的Logcat,抑或DDMS等等,使用得当会给我们开发带来事半功倍的作用。平时各种调试手段都试过,但很多东西,特别是一些命令,用完就忘了,想起来要用又要google;所以打算把这些东西整理出来,方便日后查看,也算是对一些经验的总结
Logcat
1.查看Android的logcat日志
Android系统在运行时会产生很多日志,以方便开发人员调试。Logcat日志是保存在洗头膏内存中的,从系统启动后就将系统各模块和各应用输出地日志统一放在内存中的一个环状队列中。将日志保存在系统内存中,确保了日志功能不会影响应用的速度,而环状队列是避免日志无限增长(环/Users/adison/octopress/source/_posts/2014-10-18-volley-cachefen-xi.markdown状结构,最后一个记录写满后会从第一个位置开始写)。
可以使用 “adb logcat” 查看这个内存中的日志
在应用中可以用Log类中的方法输出logcat日志。下面是几个常用的日志函数:
- v(String,String) 记录冗余级别的日志
- d(String,String) 记录调试级别的日志
- i(String,String) 记录信息级别的日志
- w(String,String) 记录警告级别的日志
- e(String,String) 记录运行错误级别的日志
它们的优先级由低到高是v < d < i< w< e
2.过滤logcat日志
2.1.基于优先级
adb logcat提供了额外的功能,可基于日志优先级来过滤日志。用法为adb logcat *:#,其中#为上述级别之一。
所有优先级都自动包含比它高的优先级,因此adb logcat :W包含警告、错误和致命错误。当应用崩溃时,您可以使用adb logcat :E来查看导致该问题的原因,而不必费力去查看那些不着边际的调试用日志。然而在将日志提供给开发者时,应包含所有日志(不要设置任何过滤),因为通过调试日志通常可以找到问题的真正原因。
在调试应用时,可以使用“<标签>:<优先级>”的过滤条件去除很多不相关的日志。其中<标签>条件告诉logcat只输出具有制定标签的日志,而“优先级”条件则告诉logcat要输出日志的最低优先级,可以在logcat命令行中同时制定多个过滤条件,每个条件使用空格分隔即可。下面的命令只输出变标签为“ActivityManager”,优先级高于“信息”级别,标签为“dalvikvm”,优先级高于“调试”级别的消息,最后的“*:s”过滤条件将具有其他标签的日志消息全部屏蔽。
adb logcat ActivityManager:I dalvikvm:D *:s
2.2.基于内容
您还可以基于“内容”来过滤。比方说,您要收集所有提到术语“Google”的日志行。可以这么做:
adb logcat | grep Google
3.其他技巧
清空
如果您发现屏幕上塞满了没用的日志信息,但仍需要详细的日志,可以使用adb logcat -c清除日志缓冲区。它会重置日志并只显示重置后的日志内容。
Logcat用于错误跟踪
adb shell
logcat -d -f /sdcard/logcat.log *:E
-d 转存logcat内容
-f 指定日志保存位置
*:E 输出错误日志
Android调试之Logcat的更多相关文章
- 华为手机在开发Android调试时logcat不显示输出信息的解决办法
手机连接电脑RUN AS logcat 提示:Unable to open log device '/dev/log/main': No such file or directory 信息 本人华为C ...
- cocos2d-js 写日志log 查看日志log Android调试查看log
1 输出日志的方式,当然是cc.log了 2 如何查看日志? a)如果小程序可以先在浏览器上跑,例如用chrome,在控制台就可以看到输出的log: b)如果在真机上调试, ...
- android Log 等级以及在Android Studio 的Logcat中过滤方法
Log等级 等级越高,问题越严重. Log.e(TAG,"级别5,错误信息"); Log.e(TAG,"级别5,错误信息"); Log.w(TAG," ...
- [Android学习笔记]Android调试
Eclipse Debug 快捷键: [Ctrl + Shift + B]: 添加/取消断点 [F5]:进入方法中 [F6]:单步执行 [F7]:执行完毕此方法 [F8]:继续执行,直接跳到下一个断点 ...
- Android调试优化篇
为了开发出商业级的应用程序,大规模的測试是不可避免的,同一时候为了提高应用程序的执行速度,须要进行必要的优化.在Android中.提供了丰富的调试与优化工具供开发者应用,主要包含模拟器和目标端等两种场 ...
- Android调试桥-Android Debug Birdge详解
原文:http://android.eoe.cn/topic/summary Android调试桥-Android Debug Birdge Android调试桥(adb)是一个多功能的命令行功具,它 ...
- 转:Android 调试桥(adb)是多种用途的工具
转自:http://my.oschina.net/xuwa/blog/1574 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入 ...
- Android 调试桥(adb)是多种用途的工具
Android 调试桥 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入adb: 在设备上运行shell命令 通过端口转发来管理 ...
- Android 调试桥 (adb) 是 命令行命令--官方拷贝过来的,留作自己查看
Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信.adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令 ...
随机推荐
- ContextMenuStrip 动态添加多级子菜单
1.首先要实例化几个ToolStripItem(要为某一父菜单添加几个子菜单就实例化几个):方法如下: /*添加子菜单*/ ToolStripItem ts_1 = new ToolStripMenu ...
- Nhibernate系列学习之(五) 存储过程
NHibernate也是能够操作存储过程的,不过第一次配置可能会碰到很多错误. 一.删除 首先,我们新建一个存储过程如下: CREATE PROC DeletePerson @Id int AS DE ...
- POJ - 3150 :Cellular Automaton(特殊的矩阵,降维优化)
A cellular automaton is a collection of cells on a grid of specified shape that evolves through a nu ...
- Git 常用命令详解(三)
转自:http://www.cnblogs.com/1-2-3/archive/2010/07/18/git-commands.html
- 【模板】【学习笔记】noip数学
一.素数 欧拉筛 void prime(){ check[]=; ;i<=n;i++){ if(!check[i])prim[++cnt]=i;//这个if语句后面没有大括号!! ;j<= ...
- MSSQL日誌傳輸熱備份注意事項
主次數據庫需要新增一個用戶,並設定agent服務用此用戶執行 主次數據庫需要設定共享目錄並擁有讀/寫權限,用anent執行用戶即可 如果新增日誌傳輸時順便初始化數據庫記得次數據庫主機目錄給寫權限,否則 ...
- 通过php的MongoDB driver连接Azure的DocumentDB PaaS
Azure的DocumentDB是NoSQL类型的数据库.它还可以和目前流行的mongodb兼容,采用mongodb的driver可以直接连接Azure的DucumentDB. 目前在国内的Azure ...
- walle部署系统的使用
在项目开发的时候要管理各种开发 测试 线上环境的代码 部署 回滚等操作 这里可以使用walle walle官网:http://www.walle-web.io/ 学习安装:https://blog.c ...
- hihoCoder#1095(二分搜索)
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi and Little Ho are playing a drinking game called HI ...
- (转)C#特性详解
本文转载自:http://www.cnblogs.com/rohelm/archive/2012/04/19/2456088.html 特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集.类 ...