java初心者です。
現在実行中のプログラムのメソッド名を取得してログに出力したいのですが、メソッド名を取得する簡単な方法はあるのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答2件
0
ベストアンサー
メソッド名の出力は、たいていはログ出力を行うライブラリーでサポートされていますので、
そちらを使うのが一般的かと思います。
標準のロギング(Java Logging API、java.util.loggingパッケージにある、Java1.4以降でサポート)
を使う場合は、フォーマッターにjava.util.logging.SimpleFormatterを使えば出ます。
(出力は2行になってしまいますが。)
Log4jであれば、フォーマット"%M"を使えば出るようになります。
メソッド名を含む情報の取得には、buffalo_suzukiさんが書かれているように、
StackTrace情報を生成することになります。
StackTraceの生成は高コストなので、
リリース環境ではオフにできるようにしておくと良いです。
Log4jなどのライブラリーを使うことをお勧めします。
参考ページ
プログラマーの常識をJavaで身につける(10):入門から実践までJavaで学べる「ログ」の常識 (1/4) - @IT
投稿2014/08/18 12:10
総合スコア9396
0
以下のコードを埋め込むと、実行中のメソッド名を取得できます。
Thread.currentThread().getStackTrace()[0].getMethodName();
ちなみにメソッド名以外にクラス名等の情報も取得可能です。
stackTraceElement[0].getFileName()
・・・ファイル名(例:Foo.java)
stackTraceElement[0].getClassName()
・・・クラス名(例:Foo)
stackTraceElement[0].getMethodName()
・・・メソッド名(例:getNumber)
stackTraceElement[0].getLineNumber()
・・・行番号(例:10)
投稿2014/08/18 02:30
総合スコア156
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/08/20 01:54