新建空文件夹 log,用于存储 log 日志文件

android将log保存到文件_android将log保存到文件

在 log 文件夹中,右键选择“在此处打开命令行”

命令行中,执行命令,清空日志信息

adb logcat -c

android将log保存到文件_android_02

操作手机,直到需要打印 log 时为止

为了便于区分,以下输入的log文件,均以 .log 作为文件的后缀,建议使用 NodePad++ 打开

在打开的命令行中,继续执行命令,将日志信息输出到指定文件中(该文件不存在,则会新建)

adb logcat > logcat.log

android将log保存到文件_adb_03

下面的命令是将日志信息输出到已经存在的指定文件中

adb logcat > C:\Users\twl\Desktop\log\logcat.log

android将log保存到文件_android将log保存到文件_04

下面的命令是将日志信息输出到以“日期 时间”命名的文件中

adb logcat > "%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%时%time:~3,2%分%time:~6,2%.log"

android将log保存到文件_日志输出_05

说明:

在windows 的cmd命令行窗口执行date命令后这个环境变量的值为

android将log保存到文件_adb_06

那么如下的各个操作的意义如下: %date:~0,4% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取4位字符,结果是2016(年的值) %date:~5,2% 表示指针从左向右偏移5位,然后从偏移处开始提取2位字符,结果是11(月的值) %date:~8,2% 表示指针从左向右偏移8位,然后从偏移处开始提取2位字符,结果是09(日的值)

再来看时间time变量的值:

android将log保存到文件_命令行_07

那么如下的各个操作的意义如下: %time:~0,2% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取2位字符,结果是小时字段数值 %time:~3,2% 表示指针从左向右偏移3位,然后从偏移处开始提取2位字符,结果是分钟字段数值 %time:~6,2% 表示指针从左向右偏移6位,然后从偏移处开始提取2位字符,结果是秒字段数值

下面的命令是只输出指定Tag的日志信息

“-s”选项 : 设置默认的过滤器, 如 我们想要输出 “System.out” 标签的信息, 就可以使用adb logcat -s System.out 命令;

android将log保存到文件_命令行_08

还可以当手机与PC断开时,持续往手机上的某个文件中输入log日志(未亲测)

“-f”选项 : 该选向后面跟着输入日志的文件, 使用adb logcat -f /sdcard/log.txt 命令, 注意这个log文件是输出到手机上,需要指定合适的路径。这个参数对对不能一直用电脑连着手机收集日志的场景非常有用,其实android shell下也有一个相同参数的logcat命令。

android将log保存到文件_adb_09

解析 adb logcat 的帮助信息

在命令行中输入以下命令, 以查看 logcat 命令的帮助信息

adb logcat --help

android将log保存到文件_android将log保存到文件_10

adb logcat 命令格式:adb logcat [选项] [过滤项],其中 选项 和 过滤项 在 中括号 [] 中, 说明这是可选的;

(1) 选项解析

-- "-s"选项 : 设置输出日志的标签, 只显示该标签的日志;

--"-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;

--"-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;

--"-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;

--"-v"选项 : 设置日志的输出格式, 注意只能设置一项;

--"-c"选项 : 清空所有的日志缓存信息;

--"-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;

--"-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;

--"-g"选项 : 查看日志缓冲区信息;

--"-b"选项 : 加载一个日志缓冲区, 默认是 main, 下面详解;

--"-B"选项 : 以二进制形式输出日志;
(2) 过滤项解析

过滤项格式 : <tag>[:priority] , 标签:日志等级, 默认的日志过滤项是 " *:I " ;

-- V : Verbose (明细);

-- D : Debug (调试);

-- I : Info (信息);

-- W : Warn (警告);

-- E : Error (错误);

-- F: Fatal (严重错误);

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