[英]How to fetch logs continuously from logcat programmatically?
我正在使用logcat通过以下程序获取android日志:
Process process=runtime.exec("logcat");
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(process.getInputStream()));
FileOutputStream fos=new FileOutputStream("/sdcard/Pictures/logs.txt");
String line; while((line=bufferedReader.readLine())!=null){
fos.write(line.getBytes());
}
但是问题是它将立即获取所有日志并将其写入文件。
但是,我想继续轮询logcat以获取新日志,并希望在有新日志可用时将日志写入文件。
您能建议一种方法吗?
取得logcat
try {
Process process = Runtime.getRuntime().exec("logcat");
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
StringBuilder log=new StringBuilder();
String line = "";
while ((line = bufferedReader.readLine()) != null) {
log.append(line);
}
TextView tv = (TextView)findViewById(R.id.textView1);
tv.setText(log.toString());
}
catch (IOException e) {}
确保
http://developer.android.com/tools/debugging/debugging-log.html#outputFormat
尝试添加fos.flush();
进入您的while周期。
您的周期可能如下所示:
while((line=bufferedReader.readLine())!=null){
fos.write(line.getBytes());
fos.flush();
}
这是未经测试的解决方案,所以让我知道它是否行不通。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.