我观察到,当我使用Logcat Eclipse ADT for Android时,我也从许多其他应用程序获得消息。是否有一种方法来过滤这个,只显示来自我自己的应用程序的消息。
当前回答
这显然是一个针对从开发人员设备外部使用Logcat的问题,但是如果你想在设备上(以编程方式)显示Logcat输出,你只需要这个:
Runtime.getRuntime().exec("logcat " + android.os.Process.myPid() + " *:D");
末尾的*:D会过滤掉Debug日志级别以下的所有消息,但您可以省略它。
直接输出到,比如说,一个TextView,请看这里的例子。
其他回答
包的名称保证是唯一的,所以你可以使用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中。
您可以使用下面的命令为您的应用程序包获取详细日志
Adb logcat com.example。myapp: V *: S
另外,如果你已经推出了你的应用程序,你想从发布的应用程序中获取错误日志,你可以使用以下命令。
adb logcat AndroidRuntime:E *:S
为您的日志命名。我叫我的“娃娃儿”。
在Android Studio中,进入Android->编辑过滤器配置
然后输入给日志的名称。对我来说,它叫“娃娃儿”。下面是一些可以使用的过滤器类型的示例。您可以通过系统进行过滤。,系统。err,日志或包名:
Windows命令提示符方式:adb logcat -d | findstr <package>.使用实例
*这是jj_首先提到的,但我花了很长时间才在评论中找到它…
在linux中,这对我来说是有效的:
adb logcat | grep `adb shell ps | grep your.package | awk '{print $2}'`
推荐文章
- 警告: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文件