将 Logcat 从 Android 应用程序保存到 txt 文件
Posted
技术标签:
【中文标题】将 Logcat 从 Android 应用程序保存到 txt 文件【英文标题】:Save Logcat from Android app to txt file 【发布时间】:2016-01-13 23:17:49 【问题描述】:我正在尝试将我在 android Studio
中看到的所有 logcat(就像这里的 http://i.imgur.com/IJkGcL4.png)直接保存为我的设备上的 txt file
。
到目前为止我尝试的是onCreate
中的这段代码:
File logFile = new File(LogcatDir.getAbsolutePath() + "/log.txt" );
try
Process process = Runtime.getRuntime().exec( "logcat -c");
process = Runtime.getRuntime().exec( "logcat -f " + logFile + " *:S MyActivity_BUT_WHAT_TO_PUT_HERE");
catch ( IOException e ) e.printStackTrace();
在manifest file
:
<uses-permission android:name="android.permission.READ_LOGS" />
我故意做了类似的解析错误
long test = Long.parseLong("z");
但实际上log.txt
中只有这个:
--------- beginning of /dev/log/main
--------- beginning of /dev/log/system
有谁知道,我必须编写什么代码,才能得到整个 logcat?
【问题讨论】:
注意READ_LOGS
不适用于Android 4.1及更高版本的普通Android SDK应用:commonsware.com/blog/2012/07/12/read-logs-regression.html
尽量不要调用“logcat -c”,因为它会刷新它
这篇文章可能会有所帮助:***.com/questions/1756296/…
@ivan 我不会再打电话给logcat -c
所以我想我不会删除文件
我最好的猜测是,由于您首先执行 logcat -c 它会刷新日志然后保存它,因此请使用 Log.w("Before the flush","-c") Log 进行测试.w("After the flush","-f") 看看会发生什么
【参考方案1】:
这对我有用,它使用以下代码将其保存在主存储中:
Log.w("before","Logcat save");
try
Process process = Runtime.getRuntime().exec("logcat -d");
process = Runtime.getRuntime().exec( "logcat -f " + "/storage/emulated/0/"+"Logging.txt");
catch(Exception e)
e.printStackTrace();
【讨论】:
没有问题 :D @Pixel_95 @ivan 这不需要以上是关于将 Logcat 从 Android 应用程序保存到 txt 文件的主要内容,如果未能解决你的问题,请参考以下文章
Android - 将 logcat 保存到文件并限制文件大小
如何把android开发的时候把LogCat里的内容复制出来?如果不能复制,要是转储到文件中请说明详细步骤?
无法在 Android 上使用 Cloud Firestore 保存文档