如何从android获取完整的系统日志

Posted

技术标签:

【中文标题】如何从android获取完整的系统日志【英文标题】:How to get complete system log from android 【发布时间】:2013-07-18 08:34:10 【问题描述】:

我想获得完整的系统日志。目前,我正在使用下面的代码来获取系统日志

try 
        final Process process = Runtime.getRuntime().exec("logcat -d -v threadtime *:I");
        final BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(
                process.getInputStream()));
        String line;
        while ((line = bufferedReader.readLine()) != null) 
            lineList.add(line);
        
     catch (final IOException e) 
        Log.e(e.toString());
    

我可以使用上面的代码成功获取系统日志。它只提供最后 30 分钟的日志。但是,我想从我的应用程序启动中获得完整的系统日志。是否可以将系统日志写入我们的私有文件?

【问题讨论】:

您必须删除 -d 选项,因为它实际上“将日志转储到屏幕并退出”。如果您希望它继续打印日志,则不能终止 logcat。 developer.android.com/tools/help/logcat.html 是否可以将系统日志连续写入私有文件? 是的,您只需将读取的每一行写入磁盘上的文件即可。 你知道如何停止从 logcat 读取吗? 【参考方案1】:

要连续写入文件,试试这个:

... exec( "logcat -f cachedirectory/logfile.txt -v threadtime" );

请参阅http://developer.android.com/tools/help/logcat.html 中的 -f 选项。

【讨论】:

以上是关于如何从android获取完整的系统日志的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 android 的系统日志 logcat

Android 日志系统分析(三):logcat

如何获得Android的崩溃日志

如何从android应用程序获取日志[重复]

iOS测试随笔崩溃日志获取

LogCook 一个简单实用的Android日志管理工具