如何将LogCat内容保存到文件?

问题描述 投票:0回答:12

我添加了调试字符串(使用 Log.d()),并希望在 logCat 内容的上下文中查看它们。 LogCat 的“保存”图标有一个“保存所选项目”提示,但必须有一种快速方法来保存整个内容,或选择整个内容,但我不知道该怎么做。

android android-emulator eclipse-plugin android-logcat
12个回答
113
投票

要将 Log cat 内容保存到文件中,您需要重定向到 android sdk 的平台工具文件夹并点击以下命令

adb logcat > logcat.txt

在 Android Studio 3.6RC1 版本中,将在相应的项目文件夹中创建名为“logcat.txt”的文件。您可以根据您的兴趣更改名称。享受


42
投票

除了 Dinesh Prajapati 的回答外,使用

 adb -d logcat <your package name>:<log level>

其中 -d 代表设备,您也可以选择 -e 代表模拟器日志,日志级别为 a/d/i/v/e/w 等。

现在你的命令如下:

adb -d logcat com.example.example:V > logfileName_WithPath.txt

28
投票

有两种方法可以做你想做的事:

  1. 在 logcat 消息窗口中右键单击,选择全选。 然后您保存的将是该窗口中的所有 logcat 消息(包括滚动到视图之外的消息)。
  2. 当焦点位于 logcat 消息窗口中时,键入 control-A,这将选择所有消息。 然后保存等等等等

18
投票

要将 LogCat 日志以编程方式保存到设备上的文件中,请使用以下代码:

String filePath = Environment.getExternalStorageDirectory() + "/logcat.txt";
Runtime.getRuntime().exec(new String[]{"logcat", "-f", filepath, "MyAppTAG:V", "*:S"});

"MyAppTAG:V"
MyAppTAG
的优先级设置为详细(最低优先级)

"*:S"
将所有标签的优先级设置为“静音”

有关 logcat 的更多信息这里


15
投票

logcat 工具与

-d
-f
开关和 exec() 方法结合使用。

保存到主机上的文件:

exec( "adb logcat -d > logcat.log" ) // logcat is written to logcat.log file on the host.

如果您只是保存到设备本身上的文件,您可以使用:

exec( "adb logcat -f logcat.log" ) // logcat is written to logcat.log file on the device.

12
投票

打开命令提示符并找到 adb.exe(它将位于您的 android-sdk/platform-tools 中)

adb logcat -d > <path-where-you-want-to-save-file>/filename.txt

如果省略路径,它会将logcat保存在当前工作目录中

-d 选项表示您正在转储当前内容然后退出。 最好使用记事本++打开此文件,以便您可以以正确的可读格式获取所有内容。


4
投票

如果您只想显示过去半小时内或其他设定时间内的日志(带时间戳),则需要额外提示。调整日期格式以匹配您的系统。这个可以在 Ubuntu 16.04LTS 上运行:

adb shell logcat -d -v time -t "$(date '+%m-%d %H:%M:%S.%3N' -d '30 minutes ago')" > log_name.log

3
投票
String filePath = folder.getAbsolutePath()+ "/logcat.txt"; 
Runtime.getRuntime().exec(new String[]{"logcat", "-f", filePath, "MyAppTAG:V", "*:E"});

2
投票

程序化方法的其他提示:

String filePath = Environment.getExternalStorageDirectory() + "/logcat.txt";
Runtime.getRuntime().exec(new String[]{"logcat", "-f", filepath, "MyAppTAG:V", "*:S"});

这将在 logcat 和提供的文件之间打开一个连续的输出流。如果您随后等待 exec 返回的进程,这可能会导致死锁,或者如果提供的文件被过早处置,则会导致异常。

我发现包含“-d”标志只会转储 logcat 并关闭连接,从而防止上述行为。


1
投票

如果您位于设备的控制台窗口中并且使用 Teraterm,则从菜单中执行文件 |记录并自动保存到文件。


1
投票

如果您使用的是 Mac 上的 Android Studio(我使用的是 Electric Eel | 2022.1.1),您可以在 Logcat 窗口(或运行窗口)中左键单击,然后按 Command-a 选择全部文本。然后您可以将其粘贴到您最喜欢的文本编辑器中并保存。


0
投票

我通常将文件保存在设备内,步骤如下:

1. adb shell
2. cd /sdcard/ -> I go here since we have access to create and write files here
3. touch myDebugFile.txt -> create a .txt file named myDebugFile
4. logcat | grep "YourTag" > myDebugFile.txt -> this filters the logcat with "YourTag" and writes that to myDebugFile.txt

只要您不停止第 4 步,您就会将日志写入文件中。 完成测试后,您将退出“shell”,然后使用以下命令提取文件:

adb pull /sdcard/myDebugFile.txt

我们可以用一个命令简化步骤 1 到 4:

adb shell "cd /sdcard/ && touch myDebugFile.txt && logcat | grep "YourTag" > myDebugFile.txt"
© www.soinside.com 2019 - 2024. All rights reserved.