2012/02/21

Logcatを使用してスタックトレースを出力する方法

スタックトレースをログ出力する方法です。
RuntimeException e = new RuntimeException("here");
e.fillInStackTrace();
Log.w(TAG, "Called doStart when already started: " + this, e);
出力結果は下記
W/List(16167): yuki: ItemListFragment{412b96f0 #1 id=0x7f050003}
W/List(16167): java.lang.RuntimeException: here
W/List(16167): at yuki.fragment.page.ItemListFragment.onActivityCreated(ItemListFragment.java:53)
W/List(16167): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:847)
W/List(16167): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1032)
W/List(16167): at android.app.BackStackRecord.run(BackStackRecord.java:622)
W/List(16167): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1382)
W/List(16167): at android.app.Activity.performStart(Activity.java:4474)
W/List(16167): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1929)
W/List(16167): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
W/List(16167): at android.app.ActivityThread.access$600(ActivityThread.java:123)
W/List(16167): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
W/List(16167): at android.os.Handler.dispatchMessage(Handler.java:99)
W/List(16167): at android.os.Looper.loop(Looper.java:137)
W/List(16167): at android.app.ActivityThread.main(ActivityThread.java:4424)
W/List(16167): at java.lang.reflect.Method.invokeNative(Native Method)
W/List(16167): at java.lang.reflect.Method.invoke(Method.java:511)
W/List(16167): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
W/List(16167): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
W/List(16167): at dalvik.system.NativeStart.main(Native Method)