Android手机在开发调试时logcat过滤不能显示输出信息的解决办法

网上搜了N多解决方法,但是很多将log级别的,用法的,更多的是如何在logcat中设置filter进行log的过滤与查看,但是我遇到的问题是,模拟器怎么着都OK,但真机、手机进行开发调试的时候却看不到log信息,这是很恼人的事情(毕竟模拟器跑起来太慢了)。

刚开始没有查到好的方法,就用try catch把exception打到一个alertdialog中,但是这样只能看个大概,绕这个圈子没用,最后还是在eoe的论坛上看到了解决办法,恐怕原因是rom本身没有打开log的开关

问题表现:连接手机与电脑后,驱动安装正确,USB调试模式打开,在DDMS中可以看到device及其进程的信息,但是logcat中就是没有信息输出
问题原因:一些rom默认关闭logcat
问题说明:ddms中设备名字显示为问号不影响,即adb get-serialno显示为问号不影响.
解决方法:
1.需要root权限(部分rom不需要)
2.打开logcat,并设置level,执行命令如下(android 升级之后 adb 在 platform-tools中,不在tools中)
adb shell
echo 1 > /sys/kernel/logger/log_main/enable
说明:将1写入日志开关文件,1为开,0为关
echo 2 >/sys/kernel/logger/log_main/priority
说明:将代表level的2写入优先级文件
3.重启adb,如果使用eclipse,先关闭eclipse,再重启adb,再启动eclipse
adb kill-server
adb start-server
4.此时logcat应该可以工作了,如果仍旧不工作,则更新adb
android update adb
5.重复第三步,此时logcat应该可以工作了,如果仍旧不工作,找到个人主目录下的android目录,如C:\Documents and Settings\Administrator\.android
找到这个目录下的adb_usb.ini文件,其内容默认只有三行,全为注释,在后面添加一行,内容为0x12d1
6.重复第三步,此时logcat应该可以工作了