如何获取 android 的系统日志 logcat

如题所述

    在windows7操作系统下,开发平台为android studio可以按照如下步骤获取android 的系统日志 logcat。

1、首先打开android studio的页面,如下图:

2、点击下方的机器人小图标位子为Android Monitor,如下图:

3、之后就可以看到android的系统日记log了,如下图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-04-26
您好,很高兴为您解答。

读取日志需要的权限

1

<uses-permission android:name="android.permission.READ_LOGS"/>

主要代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

package mt.fzgh;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class MyLog
{
public static class MLog //静态类
{
public static void getLog()
{
System.out.println("--------func start--------"); // 方法启动
try
{
ArrayList<String> cmdLine=new ArrayList<String>(); //设置命令 logcat -d 读取日志
cmdLine.add("logcat");
cmdLine.add("-d");

ArrayList<String> clearLog=new ArrayList<String>(); //设置命令 logcat -c 清除日志
clearLog.add("logcat");
clearLog.add("-c");

Process process=Runtime.getRuntime().exec(cmdLine.toArray(new String[cmdLine.size()])); //捕获日志
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(process.getInputStream())); //将捕获内容转换为BufferedReader

// Runtime.runFinalizersOnExit(true);
String str=null;
while((str=bufferedReader.readLine())!=null) //开始读取日志,每次读取一行
{
Runtime.getRuntime().exec(clearLog.toArray(new String[clearLog.size()])); //清理日志....这里至关重要,不清理的话,任何操作都将产生新的日志,代码进入死循环,直到bufferreader满
System.out.println(str); //输出,在logcat中查看效果,也可以是其他操作,比如发送给服务器..
}
if(str==null)
{
System.out.println("-- is null --");
}
}
catch(Exception e)
{
e.printStackTrace();
}
System.out.println("--------func end--------");
}
}
}

这里比较令人纠结的一点就是日志的清理 logcat -c 如果不加入 清理 在buffer满为止,代码自身能够迭代6~7次....

附带一份logcat的 命令...不过好像 过滤器 指令有问题....慎用
选项 说明
-s 默认设置过滤器
- f 文件 输出到日志文件
-c 清除日志
-d 获取日志
-g 获取日志的大小
- v 格式 设置日志(见下面的格式打印格式)

- v 格式 例
brief W/tag ( 876): message
process W( 876) message (tag)
tag W/tag : message
thread W( 876:0x37c) message
raw message
time 09-08 05:40:26.729 W/tag ( 876): message
threadtime 09-08 05:40:26.729 876 892 W tag : message
long [09-08 05:40:26.729 876:0x37c W/tag ] message

如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】

希望我的回答对您有所帮助,望采纳!
相似回答