Android logcatのログをSDカードなどに出力する

Android

Android logcatのログをSDカードなどに出力する

ANR解析のためや、いろんなことのためにlogcatのログを取り出したいことはあると思いますが、

 /data/anr/traces.txt

などに出力されたものを

 adb cat /data/anr/traces.txt

なんて面倒ですし、エンジニアではない人から渡してもらうのに不便ですよねっ。

というわけで、普通の人でもファイルマネージャーでアクセスできる場所にlogcatを出力しちゃいましょう。

Google Playで配布しないアプリにクラッシュログ機能を実装するで作りましたMyApplication.javaなどに次のように書きましょう。

 @Override
 public void onCreate() {
      super.onCreate();
      String LOGDIR = Environment.getExternalStorageDirectory().getPath() + "/smart.location.edison/";
      String[] cmd = new String[] { "logcat", "-f", LOGDIR+"logcat", "-v", "time", "ActivityManager:W", "myapp:D" };
      try {
          proc = Runtime.getRuntime().exec(cmd);
      } catch (IOException e1) {
          Log.e(TAG, "ログ出力時エラー"+e1);
      }
 }

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です