Android Studio的logcat不输出信息

本文介绍了在调试Android应用过程中遇到的Logcat不显示输出信息的问题及解决方案。通过更改日志过滤器的方式,解决了logcat输出信息缺失的问题。

(1)今天调试代码时logcat只输出W/IInputConnectionWrapper: showStatusIcon on inactive InputConnection,然后按照网上解决logcat不输出信息的方法:在终端输入命令adb kill-server,adb start-server后logcat便什么信息也没有显示了,后来在http://bbs.youkuaiyun.com/topics/350062903看到:logcat无输出可能是因为日志一直被刷新,刚显示出来就被清空,如果是这种情况,可以点击右侧日志过滤器换一种过滤方式。于是我将过滤方式换成了No Filters,然后logcat显示出了信息。
(2)修改过滤器:
这里写图片描述

Android Studio 中,**Logcat 日志等级(Log Level)** 是用于过滤和分类输出日志的重要机制。它帮助开发者快速识别关键信息、调试问题或屏蔽无关日志。 --- ## ✅ Android Studio Logcat 的 6 个日志等级(从高到低) | 等级 | 全称 | 颜色标识 | 含义 | 使用场景 | |------|------|--------|------|----------| | `Assert` | Assertion Error | 红色 🔴 | 断言失败,程序应继续运行 | 极严重错误,崩溃前警告 | | `Error` | Error | 红色 🔴 | 运行时错误,功能异常 | 捕获异常、空指针等 | | `Warn` | Warning | 黄色 🟡 | 警告行为,可能有问题 | 使用弃用 API、资源足 | | `Info` | Information | 绿色 🟢 | 一般提示信息 | 应用启动、状态变更 | | `Debug` | Debug | 蓝色 🔵 | 调试信息,仅开发期使用 | 变量值、流程跟踪 | | `Verbose` | Verbose | 白色 ⚪ | 所有详细日志(最全) | 开发调试时启用 | > ⚠️ 注意:**等级越低,日志越多**。例如 `Verbose` 包含所有级别日志。 --- ## ✅ 如何在 Android Studio 中设置 Logcat 等级? ### 方法一:通过 Logcat 面板顶部下拉菜单选择 1. 打开 Android Studio 2. 点击底部工具栏的 **Logcat** 3. 在左上角找到 **Severity / Level 下拉框** 4. 选择你需要的日志等级(如 `Error`、`Warning` 等) 👉 效果: - 选择 `Error` → 只显示 `Error` 和 `Assert` - 选择 `Warn` → 显示 `Warn`, `Error`, `Assert` - 选择 `Verbose` → 显示全部日志 --- ### 方法二:使用代码打印同等级日志(Kotlin/Java) ```kotlin import android.util.Log class MainActivity : AppCompatActivity() { private val TAG = "MainActivity" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) Log.v(TAG, "这是 Verbose 日志 - 最详细") // 调试细节 Log.d(TAG, "这是 Debug 日志 - 仅开发使用") // 调试变量 Log.i(TAG, "这是 Info 日志 - 应用状态") // 初始化完成 Log.w(TAG, "这是 Warn 日志 - 潜在风险") // 弃用方法调用 Log.e(TAG, "这是 Error 日志 - 出错了") // 捕获异常 Log.wtf(TAG, "这是 Assert 日志 - 应该发生") // 断言失败 } } ``` > 💡 `Log.wtf()` = "What a Terrible Failure",表示可恢复的逻辑错误。 --- ## ✅ 实际应用建议 | 场景 | 推荐等级 | 示例 | |------|---------|------| | 发布版本中禁止输出调试信息 | ❌ 删除或用 `if (BuildConfig.DEBUG)` 控制 | | 捕获异常并记录 | `Error` | `Log.e(TAG, "网络请求失败", e)` | | 提示用户操作结果 | `Info` | `Log.i(TAG, "登录成功")` | | 调试数据流转 | `Debug` | `Log.d(TAG, "userId = $userId")` | | 性能监控 | `Warn` | `Log.w(TAG, "页面加载耗时超过5秒")` | | 防御性编程检查 | `Assert` | `Log.wtf(TAG, "状态机进入非法状态")` | --- ## ✅ 高级技巧:结合 BuildConfig 优化日志控制 避免发布版泄露敏感信息: ```kotlin private fun logDebug(msg: String) { if (BuildConfig.DEBUG) { Log.d("MyApp", msg) } } ``` 或者封装一个日志工具类: ```kotlin object Logger { private const val TAG = "MyApp" private val IS_DEBUG = BuildConfig.DEBUG fun v(msg: String) = if (IS_DEBUG) Log.v(TAG, msg) else Unit fun d(msg: String) = if (IS_DEBUG) Log.d(TAG, msg) else Unit fun i(msg: String) = if (IS_DEBUG) Log.i(TAG, msg) else Unit fun w(msg: String) = Log.w(TAG, msg) // 警告总是记录 fun e(msg: String, tr: Throwable? = null) = Log.e(TAG, msg, tr) } ``` --- ## ✅ 常见问题与排查 | 问题 | 解决方案 | |------|----------| | Logcat 显示任何内容 | 检查设备是否连接、应用是否运行、过滤器是否正确 | | 只看到系统日志,看不到自己 App 的日志 | 在 Logcat 顶部选择你的应用包名(如 `com.example.myapp`) | | 日志太多刷屏 | 将等级设为 `Warn` 或 `Error`,或添加关键字过滤 | | 自定义 TAG 失效 | 确保 TAG 长度 ≤23 字符(Android 限制) | --- ## ✅ 示例:Logcat 过滤实用技巧 ### 1. 按关键字过滤 在 Logcat 输入框输入: ``` LoginFailed ``` → 只显示包含 “LoginFailed” 的日志 ### 2. 按 TAG 过滤 ``` tag:MainActivity ``` → 显示所有 TAG 为 MainActivity 的日志 ### 3. 组合过滤(高级) ``` package:mine level:error ``` → 显示包名为 mine 且等级为 error 的日志 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值