70 votes

Écrire des données logcat android dans un fichier

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?

125voto

jkhouw1 Points 4856

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) {
    }
  }
}
 

42voto

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X