ログへと動的に行数やメソッド名やクラス名を出力させてみました。
コードは次のようになります:
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を使っているなら、
スニペットに登録すれば一瞬でコードに挿入することができます。
リファクタでメソッド名が変わったり、行数がずれたりしても、
動的にそれらが挿し換わるので、便利ですよ