我观察到,当我使用Logcat Eclipse ADT for Android时,我也从许多其他应用程序获得消息。是否有一种方法来过滤这个,只显示来自我自己的应用程序的消息。
当前回答
ADT v15 for Eclipse允许您指定应用程序名称(实际上是androidmanifest.xml中的包值)。
我喜欢通过应用程序进行过滤,但新的logcat在自动滚动方面有一个bug。当您向上滚动一点以查看以前的日志时,它会在几秒钟内自动滚动回底部。在日志中向上滚动1/2的位置似乎可以防止它跳回底部,但这通常是无用的。
编辑:我试着从命令行指定一个应用程序过滤器——但运气不好。如果有人解决了这个问题或者如何停止自动滚动,请告诉我。
其他回答
对于windows,你可以使用我的PowerShell脚本只为你的应用程序显示消息: https://github.com/AlShevelev/power_shell_logcat
我不确定是否有一种方法只能看到关于你的应用程序的系统消息,但你可以基于字符串进行过滤。如果在程序中执行日志,则可以只包含某个惟一的关键字,并基于该关键字进行筛选。
在linux中,这对我来说是有效的:
adb logcat | grep `adb shell ps | grep your.package | awk '{print $2}'`
包的名称保证是唯一的,所以你可以使用Log功能与标签作为你的包的名称,然后过滤包的名称:
注意:从构建工具21.0.3开始,这将不再有效,因为标签被限制为23个字符或更少。
日志。<日志级别>("<您的包名>","message");
adb -d logcat <您的包名>:<日志级别> *:S
-d表示实际设备,-e表示模拟器。如果有多个模拟器正在运行,您可以使用-s emulator-<模拟器编号>(例如,-s emulator-5558)
例如:adb -d logcat com.example。例子:我*:S
或者,如果您使用System.out.print将消息发送到日志中,则可以使用adb -d logcat System。out:I *:S只显示对System.out的调用。
您可以在这里找到所有日志级别和更多信息:https://developer.android.com/studio/command-line/logcat.html
http://developer.android.com/reference/android/util/Log.html
编辑:看起来我有点操之过急了,刚刚才意识到您在问Eclipse中的logcat。我上面发布的是如何从命令行通过adb使用logcat。我不确定相同的过滤器是否可以转移到Eclipse中。
当你在shell内部时,获取确切包名日志的另一种方法:
logcat --pid $(ps -ef | grep -E "com.example.app\$" | awk '{print $2}')
推荐文章
- Manifest合并失败:uses-sdk:minSdkVersion 14
- 为什么Android工作室说“等待调试器”如果我不调试?
- 如何检查我的EditText字段是否为空?
- Android从图库中选择图像
- 后台任务,进度对话框,方向改变-有任何100%工作的解决方案吗?
- Android:垂直对齐多行EditText(文本区域)
- Android无尽列表
- Android room persistent: AppDatabase_Impl不存在
- 错误:执行失败的任务':app:compileDebugKotlin'。>编译错误。详细信息请参见日志
- 在Android中使用URI生成器或使用变量创建URL
- 缩放图像以填充ImageView宽度并保持纵横比
- 列表视图的自定义适配器
- 在Android中设置TextView span的颜色
- 如何以编程方式在RelativeLayout中布局视图?
- Android Facebook集成无效键散列