3

私は Annotations と StackOverflow が初めてで、これが私の最初の質問です。メソッドの実行をトレースしてログに記録するのに役立つカスタム注釈を作成しようとしています。

例えば:

class A
{

@Logthis

void methodA();

}

ここで、メソッドmethodA()が実行されるたびに、「クラス A で methodA に入っています」と伝えるファイルにログを記録し、methodA が終わったら「クラス A で methodA を終了しています」と伝えたいと思います。多くのクラスとメソッドがあります。

これは AspectJ を使用して実行できることを知っています。ポイントカットとジョインポイントを定義することでそれを行いました。しかし、カスタム注釈を使用してそれを行いたいです。

誰かがこれをどのように行うかについて私を導くことができれば、それは非常に役に立ちます.

前もって感謝します。

4

3 に答える 3

2

AspectJ を使用して、次のことを行います。

@Aspect でアノテーションを付けた Aspect クラスを作成する

@Around でクラスのメソッドにアノテーションを付け、アノテーションを付けたクラスで実行される値を定義します。また、AspectJ によるクラスのプロキシを有効にする必要があります。

@Aspect
public class LoggerAspect {

    @Around(value = "execution(@you.custom.Annotation * *(..))")
    public Object logMethod(ProceedingJoinPoint joinPoint) throws Throwable
    {
        // DO LOGGING HERE
    }

}
于 2012-12-21T11:36:01.940 に答える
1

Log4J を使用できます。これはそのチュートリアルです:

http://javakane.blogspot.fr/2012/07/automate-log4j-logging-with-aop-and.html

于 2012-12-21T10:55:10.090 に答える