我使用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,并希望在有新日志时将日志写入文件。
你能建议一种方法吗?
答案 0 :(得分:1)
获取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
答案 1 :(得分:0)
尝试将fos.flush();
添加到您的while循环中。
您的周期可能如下所示:
while((line=bufferedReader.readLine())!=null){
fos.write(line.getBytes());
fos.flush();
}
这是未经测试的解决方案,所以请告诉我它是否无效。