我观察到,当我使用Logcat Eclipse ADT for Android时,我也从许多其他应用程序获得消息。是否有一种方法来过滤这个,只显示来自我自己的应用程序的消息。
当前回答
当你在shell内部时,获取确切包名日志的另一种方法:
logcat --pid $(ps -ef | grep -E "com.example.app\$" | awk '{print $2}')
其他回答
在intelliJ中(可能在eclipse中也有),你可以通过文本webview过滤logcat输出,所以它基本上打印phonegap生成的所有内容
现在可以输入tag:nameofthetag或app:nameoftheapp来过滤,而不需要在保存的过滤器栏中添加新的过滤器
我不确定是否有一种方法只能看到关于你的应用程序的系统消息,但你可以基于字符串进行过滤。如果在程序中执行日志,则可以只包含某个惟一的关键字,并基于该关键字进行筛选。
我写了一个shell脚本,通过包名过滤logcat,我认为这比使用更可靠
ps | grep com.example.package | cut -c10-15
它使用/proc/$pid/cmdline找到实际的pid,然后在logcat上执行grep
https://gist.github.com/kevinxucs/7340e1b1dd2239a2b04a
这显然是一个针对从开发人员设备外部使用Logcat的问题,但是如果你想在设备上(以编程方式)显示Logcat输出,你只需要这个:
Runtime.getRuntime().exec("logcat " + android.os.Process.myPid() + " *:D");
末尾的*:D会过滤掉Debug日志级别以下的所有消息,但您可以省略它。
直接输出到,比如说,一个TextView,请看这里的例子。
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 安装APK时出现错误
- 碎片中的onCreateOptionsMenu
- TextView粗体通过XML文件?
- 如何使线性布局的孩子之间的空间?
- DSL元素android.dataBinding。enabled'已过时,已被'android.buildFeatures.dataBinding'取代
- ConstraintLayout:以编程方式更改约束
- PANIC: AVD系统路径损坏。检查ANDROID_SDK_ROOT值
- 如何生成字符串类型的buildConfigField
- Recyclerview不调用onCreateViewHolder
- Android API 21工具栏填充
- Android L中不支持操作栏导航模式
- 如何在TextView中添加一个子弹符号?
- PreferenceManager getDefaultSharedPreferences在Android Q中已弃用
- 在Android Studio中创建aar文件