Je souhaite sauvegarder Android logcat dans un fichier chaque fois que l'utilisateur souhaite collecter des journaux. Grâce aux outils adb, nous pouvons rediriger les journaux vers un fichier en utilisant adb logcat -f filename
, mais comment puis-je le faire par programme?
Réponses
Trop de publicités?Voici un exemple de lecture des journaux: http://www.helloandroid.com/tutorials/reading-logs-programically
vous pouvez changer ceci pour écrire dans un fichier plutôt que dans un textview.
besoin de permission dans le manifeste:
<uses-permission android:name="android.permission.READ_LOGS" />
Code:
public class LogTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
Process process = Runtime.getRuntime().exec("logcat -d");
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) {
}
}
}
Stéphane
Points
3629
Logcat peut écrire directement dans un fichier:
public static void saveLogcatToFile(Context context) {
String fileName = "logcat_"+System.currentTimeMillis()+".txt";
File outputFile = new File(context.getExternalCacheDir(),fileName);
@SuppressWarnings("unused")
Process process = Runtime.getRuntime().exec("logcat -f "+outputFile.getAbsolutePath());
}
plus d'infos sur logcat: voir http://developer.android.com/tools/debugging/debugging-log.html