実行時に特定のメソッドのトレースを設定できるライブラリについて聞いたことがありますか?system.out.printlnを置き換えるJavaランタイムトレースライブラリ
System.out.println
のロットを追加して(再コンパイルして再デプロイしなくてはならない)代わりに、選択したメソッドの呼び出しごとに行を印刷するという魔法のことをしたいと思いますコードを変更することなくこれは再コンパイルせずに動作するので、ある種のJVMエージェント(または非標準JVMが必要になるでしょうか?)アスペクトプログラミングの仕事のように聞こえますか?
典型的なシナリオは、アプリケーションを起動し、トレースされたメソッドを動的に(別のファイルなどで)構成し、選択されたメソッドが名前(および引数)を持つ行と呼ばれるたびにSystem.out
またはいくつかのログファイル)。
もちろん、数十の追加機能を考えることもできますが、この基本セットは素晴らしいツールになります。ところで、私はEclipseインタラクティブなデバッガも使用しているだけでなく、System.out
トレース技術ですが、どちらもいくつかの利点があり、時にはEclipseで十分ではありません。
私はこれがアスペクト指向プログラミングの "hello world"の使い方です –
私はmigthを知っているAspectJに行くことに同意しますが、それはすぐに使える解決策ではありません。私は何かを捧げたいと思った。 –
なぜあなたはそれを使用する準備ができていないと思いますか? Aspectクラスを作成し、必要なメソッドの正規表現をいくつか入れ、起動スクリプトにAspectJ javaagentをインクルードするだけです。 – jbx