0

詳細情報をすばやくログにダンプする方法が欲しい。次のようになります。

public static void log(String message, Class<?> sourceClass){
    dump(formattedTime+sourceClass.getName()+"line"+lineNumberfromwhichthemessagecomes 
    (if several occurences are found, show all of them if there's no other way to
    detectwhere has the method been called from).
}

新しいExceptionオブジェクトを作成し、そのスタックトレースの最初の行の行番号を取得することについてのトリックはすでに知っていますが、それを使用すると、logメソッド内でトリックを実行する場合、行番号をパラメーターとして追加する必要があります。 、常に同じ行番号(トリックを作成した行の1つ)を取得します。

これを達成する方法はありますか)?

4

1 に答える 1

6

Exception の getStackTrace() メソッドを使用して、スタック フレームのリストを取得できます。次に、1 要素分または何らかのロジックを使用して (たとえば、ログ クラスにないメソッドを取得するまで) スタックを上に移動し、その StackTraceElement の行番号をログに使用できます。

于 2012-09-22T14:33:12.910 に答える