例外クラスから例外スタックのすべての情報を取得

545 ワード

通常、例外スタックをログに印刷するにはloggerを使用します.error("message",e)というように印刷されていて、中の実装を見てみると、実際には異常なスタック情報printをStringWriterに転送してloggerに移動しています.error(message)では、ここに記録しておきます.後で異常スタック情報を指定位置にカスタマイズするのに便利です.
    @Test
    public void testPrintStackTrace(){

        StringWriter buffer = new StringWriter();
        PrintWriter out = new PrintWriter(buffer);
        new RuntimeException("fake runtime exception!").printStackTrace(out);

        System.out.println(buffer);
    }

異常な出力位置をカスタマイズする必要がある場合が多いが、この方法はよく使われる.