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