LoginSignup
29
28

More than 5 years have passed since last update.

ログへと動的に行数やメソッド名、クラス名を出力して、どこのログなのか一瞬でわかるようにする

Last updated at Posted at 2014-06-12

ログへと動的に行数やメソッド名やクラス名を出力させてみました。

コードは次のようになります:

new Throwable().printStackTrace(System.out);

この行のスタックトレースを出力させられます。
どういう経路でこの行まで来たかがわかるので便利です。

もしくは、

LogTest.Java
package test;

public class LogTest {
    public static void main(String[] args) {
        StackTraceElement throwableStackTraceElement = new Throwable().getStackTrace()[0];
        System.out.println(throwableStackTraceElement.getClassName() + "#" + throwableStackTraceElement.getMethodName() + "(" + throwableStackTraceElement.getLineNumber() + ")");
    }
}

これを実行すると

test.LogTest#main(5)

と、
クラスの完全修飾名#メソッド名(行数)というログを出力させることができます。

タイプするのは面倒ですが、Eclipseを使っているなら、
スニペットに登録すれば一瞬でコードに挿入することができます。

リファクタでメソッド名が変わったり、行数がずれたりしても、
動的にそれらが挿し換わるので、便利ですよ

29
28
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
28