2011-05-26 24 views
0

我想转储所有日志以测试我的应用程序的长时间使用情况,也许2-3天,但日志似乎在长时间运行时被清除。如何让android设备日志不被清除?

如何保存日志?

我不想全天连接我的设备和eclipse,我希望日志只为我保留,就像存储在SD卡中进一步检查一样。

+1

logcat日志是一个64KB的环形缓冲区,所以最终旧的条目将被较新的条目覆盖。您需要定期捕获日志。 – CommonsWare 2011-05-26 12:45:07

回答

1

而不是使用Eclipse日志使用像“日志查看器”的应用程序。我认为这个应用可以解决你的问题。我认为日志将保持到您在“日志查看器”中手动清除日志为止。今天早上我刚刚下载了它,并且仍然有我刚刚打开设备后执行的操作日志。

0

您是否尝试将日志转储到文件?

adb logcat > log.txt

2

我对我的申请有相同的要求。默认情况下,有logcat进程跟踪日志高达64kb(取决于设备)。

您可以使用adb shell开始自己的logcat进程,并使用一些自定义参数。例如:

adb shell logcat -f /mnt/sdcard/large.log -r 100 -n 10 

这将节省多达10页中的文件(large.log,large.log.0,larget.log.1等)均匀地分布原木1MB;

下一步是从您的应用程序中启动logcat

String [] args = new String[] { Logcat, "-v", "threadtime", 
           "-f", logFile.getAbsolutePath(), 
           "-r", Integer.toString(sizePerFile), 
           "-n", Integer.toString(rotationCount), 
           "*:"+filter}; 

Runtime.getRuntime().exec(args); 

所以,现在你的应用程序可能会开始保存日志。但是,您应该小心,不要在生产版本的应用程序中启用此功能(或者至少需要选择此功能)。