java logcat_使用 Logcat 写入和查看日志

本文介绍了如何在 Android Studio 中使用 Logcat 查看和过滤应用日志,包括显示和清除日志、设置日志级别、搜索和过滤日志消息。Logcat 提供了多种日志级别和按钮功能,便于开发者调试和分析应用。此外,还讲解了如何写入日志消息,以及日志消息的格式和过滤器的配置方法。
摘要由CSDN通过智能技术生成

Android Studio 中的 Logcat 窗口会显示系统消息,例如在进行垃圾回收时显示的消息,以及使用 Log 类添加到应用的消息。此窗口可以实时显示消息,也可以保留历史记录,因此您可以查看较早的消息。

要仅显示感兴趣的信息,您可以创建过滤器、修改消息中显示的信息量、设置优先级、仅显示通过应用代码生成的消息以及搜索日志。默认情况下,logcat 仅显示与最近运行的应用相关的日志输出。

如果应用抛出异常,logcat 会显示一条消息,后跟相关联的堆栈轨迹,其中包含指向相应代码行的链接。

从 Android Studio 2.2 开始,Run 窗口还会显示当前正在运行的应用的日志消息。请注意,您可以配置 logcat 输出显示,但无法配置 Run 窗口。

查看应用日志

如需显示应用的日志消息,请执行以下操作:

依次点击 View > Tool Windows > Logcat(或点击工具窗口栏中的 Logcat 图标

3bd70639781eee2fb632f21928e9bbbd.png)。

Logcat 窗口会显示所选应用(从窗口顶部的下拉列表中选择)的日志消息,如图 1 所示。

6c0ce38ea501d5a4b45867be74f20cc5.png

图 1. Logcat 窗口

默认情况下,Logcat 仅显示在设备上运行的应用的日志消息。要更改此默认设置,请参阅如何过滤 logcat 消息。

Logcat 工具栏中提供以下按钮:

Clear logcat

4b5ce6616078db22d7b6e81451fa7c4d.png:点击此按钮可以清除显示的日志。

Scroll to the end

3c493fda20b377bbee213f93ed921eba.png:点击此按钮可以跳转到日志底部并查看最新的日志消息。如果您先点击此按钮,然后点击日志中的某一行,则视图会在相应位置暂停滚动。

Up the stack trace

785f4abd812953fd58ce4c1e06122e73.png 和 Down the stack trace

74b8fc99e028975ad49797a827dfa4ec.png:点击相应按钮可以在日志的堆栈轨迹中进行上下导航,从而选择输出的异常中显示的后续文件名(以及在编辑器中查看相应行号)。这与您在日志中点击某个文件名时的行为相同。

Use soft wraps

31cdbdf4b4886511fd74cdf0f3eaa284.png:点击此按钮可以启用

Android SDK下, 如何在程序中输出日志 以及如何查看日志. 闲话少说,直接进入正题 在程序中输出日志, 使用 android.util.Log 类. 该类提供了若干静态方法 Log.v(String tag, String msg); Log.d(String tag, String msg); Log.i(String tag, String msg); Log.w(String tag, String msg); Log.e(String tag, String msg); 分别对应 Verbose, Debug, Info, Warning,Error. tag是一个标识,可以是任意字符串,通常可以使用类名+方法名, 主要是用来在查看日志时提供一个筛选条件. 程序运行后 并不会在 ide的控制台内输出任何信息. 如果要后查看日志使用 adb logcat 关于adb的更多信息请查看官方网站. 当执行 adb logcat 后会以tail方式实时显示出所有的日志信息. 这时候我们通常需要对信息进行过滤,来显示我们需要的信息, 这时候我们指定的 tag就派上了用场. adb logcat -s MyAndroid:I 这时将只显示tag为MyAndroid,级别为I或级别高于I(Warning,Error)的日志信息. 示例代码如下: Java代码 1. package com.zijun; 2. 3. import android.app.Activity; 4. import android.content.Context; 5. import android.graphics.Canvas; 6. import android.os.Bundle; 7. import android.util.Log; 8. import android.view.MotionEvent; 9. import android.view.View; 10. 11. public class MyAndroid extends Activity { 12. 13. protected static final String ACTIVITY_TAG="MyAndroid"; 14. 15. @Override 16. protected void onCreate(Bundle icicle) { 17. super.onCreate(icicle); 18. setContentView(new MyView(this)); 19. } 20. public class MyView extends View { 21. public MyView(Context c) { 22. super(c); 23. } 24. @Override 25. protected void onDraw(Canvas canvas) { 26. 27. } 28. @Override 29. public boolean onMotionEvent(MotionEvent event) { 30. Log.i(MyAndroid.ACTIVITY_TAG, "============================="); 31. 32. Log.d(MyAndroid.ACTIVITY_TAG, "Haha , this is a DEBUG of MyAndroid. "); 33. Log.i(MyAndroid.ACTIVITY_TAG, "Haha , this is a INFO of MyAndroid. "); 34. Log.w(MyAndroid.ACTIVITY_TAG, "Haha , this is a WARNING of MyAndroid. "); 35. 36. return true; 37. } 38.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值