adb logcat命令行用法

本文详细介绍了adblogcat命令的使用方法,包括其与AS logcat的区别、操作环境、基本流程及命令格式。通过实例展示了如何设置日志输出的标签、格式及过滤条件,适用于Android开发人员快速获取设备日志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

adb logcat命令用于输出手机或模块器开机以及用户对手机/模拟器进行操作后生成的系统日志,最后显示的日志为用户最近操作记录的日志。

区别:
AS的logcat:需要打开IDE,运行程序才能打印日志。
adb logcat:设备连接成功后,直接在设备操作程序就可以打印日志,方便很多,同时有很多的筛选命令能够满足需求。

操作环境:Linux 终端

基本流程:
手机usb连接电脑
1.查看是否连接设备:adb devices
2.输入adb logcat -s MainActivity 表示过滤在TAG MainActivity中的所有日志,也可以输入其他的筛选命令
3.打开设备中要测试的程序
4.程序运行到log时,屏幕就会打印出对应日记
5.ctrl+c 结束当前输出。

adb logcat 命令格式 :
adb logcat [选项] [过滤项], 其中 选项 和 过滤项 是可选的;
选项解析 :
-s : 设置输出日志的标签, 只显示该标签的日志;
-f: 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;
-r : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;
-n : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;
-v : 设置日志的输出格式, 注意只能设置一项;
-c : 清空所有的日志缓存信息;
-d : 将缓存的日志输出到屏幕上, 并且不会阻塞;
-t : 输出最近的几行日志, 输出完退出, 不阻塞;
-g : 查看日志缓冲区信息;
-b : 加载一个日志缓冲区, 默认是 main, 下面详解;
-B : 以二进制形式输出日志;

日志的等级有小到大:
– V : Verbose (明细);

– D : Debug (调试);

– I : Info (信息);

– W : Warn (警告);

– E : Error (错误);

– F: Fatal (严重错误);

– S : Silent(Super all output) (最高的优先级, 可能不会记载东西);

代码中日志输出为

TAG="MainActivity"
Log.i(TAG, "cameraList: mCameraOrientation  " + mCameraOrientation);
Log.i(TAG, "cameraList: backFpsRanges" + Arrays.toString(FpsRanges));
Log.i(TAG, "cameraList: isFocusing" + f);

TAG="SavePhoto"
Log.d(TAG, "imageSaver: mImageFile  d" + mImageFile);
Log.i(TAG, "imageSaver: mImageFile  i" + mImageFile);
Log.e(TAG, "imageSaver: mImageFile  e" + mImageFile);

-s:设置过滤的标签;-v:设置日志输出格式;
如以下图:设置输出格式为 time,对标签SavePhoto进行筛选,只输出有SavePhoto的日志,MainActivity的不输出。

-v输出格式类型:
1.“time”:输出时间 日志等级/tag标签(进程ID):日志信息
在这里插入图片描述
2.“threadtime”:输出时间 进程ID 线程ID 日志等级 tag标签:日志信息
·在这里插入图片描述
3.“brief”:日志等级/tag标签(进程ID):日志信息
在这里插入图片描述
4.“process”:日志等级(进程ID) 日志信息
在这里插入图片描述
5.“tag”:日志等级/tag标签:日志信息
在这里插入图片描述
6.“thread”:日志等级(进程ID:线程ID) 日志信息

在这里插入图片描述
7.“raw”:日志信息
在这里插入图片描述
8.“long”:[输出时间 进程ID:线程ID 日志等级/tag标签]
日志信息
在这里插入图片描述

-s过滤多标签:
1.输出格式为“long”,过滤SavePhoto的D(包括D)以上的等级日志,即 D,I,W,E,F,S
当选为:E时,输出E等级标签
在这里插入图片描述
2.输出格式为“long”,同时过滤SavePhoto的I(包括I)以上的等级日志和MainActivity的E(包括E)以上的等级日志;
MainActivity标签的都是I等级,所以没有输出。
在这里插入图片描述

打印日志到本地:
adb logcat -v long -s SavePhoto >log.txt 打印日志到当前目录下的log.txt(没有就会创建,有则覆盖)

adb logcat -v long -s SavePhoto >/home/sfs/log.txt 指定路径/home/sfs/log.txt

清理日志缓存,
adb logcat -c 若想再查看日志需要重新打开程序.

过滤指定等级日志
adb logcat *:E

logcat中筛选多个关键字:
筛选AA,BB,CC关键字: ^(.(AA|BB|CC)).$
不想看到AA,BB,CC关键字: (.*[(AA|BB|CC)]).*$

参考链接:https://blog.youkuaiyun.com/tumuzhuanjia/article/details/39555445

<think>好的,我需要向用户介绍adb logcat用法。首先,我得回忆一下自己对这个工具的了解。adb logcatAndroid调试桥(ADB)中的一个命令,用于查看设备的日志信息。开发人员常用它来调试应用程序,分析系统行为等。 用户可能想知道基本用法,所以我应该从最简单的命令开始。比如直接运行`adb logcat`会输出大量的日志,但信息太多可能难以处理。接下来需要介绍如何过滤日志,常用的过滤方法有按标签、优先级等。比如使用`adb logcat -s TAG`可以只显示特定标签的日志。 然后,用户可能需要了解日志的优先级,比如V(Verbose)、D(Debug)、I(Info)、W(Warn)、E(Error)、F(Fatal)、S(Silent)。这里要解释清楚每个优先级对应的含义,并举例说明如何按优先级过滤,例如`adb logcat *:E`只显示错误级别以上的日志。 另外,格式化输出也很重要。默认格式可能不够清晰,使用`adb logcat -v <格式>`可以改变输出格式,比如时间、进程ID等。常用的格式有brief、process、tag、raw、time、threadtime等,其中threadtime可能比较详细,适合需要更多上下文的情况。 还有清除日志缓冲区、输出到文件、查看特定进程日志等高级用法需要涵盖。比如`adb logcat -c`清除旧日志,`adb logcat -f /sdcard/log.txt`将日志保存到文件,或者结合重定向符`>`在PC上保存。对于查看特定进程,可能需要先获取进程ID,再用`adb logcat --pid=PID`来过滤。 需要注意的是,有些命令可能需要搭配其他参数,或者在不同环境下使用。例如,在Windows、macOS或Linux下,命令可能略有不同,但大部分是相同的。此外,adb logcat还可以结合grep(在Linux/macOS)或findstr(在Windows)进行更复杂的过滤,但这点可能需要用户有一定命令行基础。 最后,要提醒用户,如果遇到权限问题,可能需要设备已开启USB调试,并且授权了计算机的调试权限。此外,某些日志可能需要root权限才能查看全部内容,但一般情况下普通调试已经足够。 现在需要将这些内容组织成一个结构清晰的回答,分点说明,确保用户能一步步理解和应用。同时注意使用正确的LaTeX格式,不过在这个主题中可能数学公式较少,主要注意代码块和命令的格式是否正确。比如用反引号包裹命令,参数用尖括号表示变量部分,必要时用中文解释每个参数的作用。</think>以下是对`adb logcat`用法的详细介绍,按功能分类说明: --- ### 一、基本命令 1. **查看完整日志** 直接运行命令会输出设备的所有日志(信息量大): ```bash adb logcat ``` 2. **退出日志输出** 按`Ctrl + C`终止日志输出。 --- ### 二、按优先级过滤日志 Android日志分为7个优先级(从低到高): `V`(Verbose,全部)、`D`(Debug,调试)、`I`(Info,信息)、`W`(Warn,警告)、`E`(Error,错误)、`F`(Fatal,严重错误)、`S`(Silent,无输出)。 1. **显示指定优先级及以上日志** ```bash adb logcat *:优先级 # 示例:仅显示错误(E)及以上日志 adb logcat *:E ``` --- ### 三、按标签(TAG)过滤 1. **显示特定标签的日志** ```bash adb logcat -s TAG # 示例:过滤系统进程和错误日志 adb logcat -s System.err AndroidRuntime ``` 2. **组合过滤(标签 + 优先级)** ```bash adb logcat TAG:优先级 # 示例:显示标签为"ActivityManager"且优先级为Info及以上的日志 adb logcat ActivityManager:I *:S ``` --- ### 四、格式化输出 使用`-v <格式>`指定日志显示格式,常用格式: `brief`(默认)、`process`、`tag`、`raw`、`time`、`threadtime`(推荐)。 1. **显示时间戳和线程信息** ```bash adb logcat -v threadtime ``` --- ### 五、实用技巧 1. **清空日志缓冲区** ```bash adb logcat -c ``` 2. **将日志保存到文件** ```bash adb logcat -f /sdcard/log.txt # 保存到设备 adb logcat > pc_log.txt # 保存到电脑(实时写入) ``` 3. **过滤特定进程日志** ```bash adb logcat --pid=<进程ID> # 步骤: # 1. 查找进程ID:adb shell "ps | grep 包名" # 2. 过滤日志:adb logcat --pid=1234 ``` 4. **实时滚动查看日志** ```bash adb logcat -f - | grep "关键词" # Linux/macOS adb logcat -f - | findstr "关键词" # Windows ``` --- ### 六、高级用法 1. **查看内核日志** ```bash adb logcat -b kernel ``` 2. **指定日志缓冲区** Android有多个日志缓冲区(`main`、`radio`、`events`等): ```bash adb logcat -b main -b radio # 同时查看主缓冲区和射频日志 ``` --- ### 七、注意事项 1. 确保设备已通过`adb devices`正确连接。 2. 若日志过多,建议结合`grep`/`findstr`二次过滤。 3. 部分系统日志需要`root`权限才能查看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值