AspectJ - obtenir une référence à la classe de jointure et au nom

Je suis en utilisant le @AspectJ de style pour la rédaction des aspects, à gérer les logs dans notre application. Fondamentalement, j'ai une coupe transverse (pointcut) configurer comme suit:

@Pointcut("call(public * com.example..*(..))")
public void logging() {}

puis une, avant et après avis de la sorte:

@Before("logging()")
public void entering() {...}
...
@After("logging()")
public void exiting() {...}

Je veux créer un journal dans ces méthodes dans le format suivant:

logger.trace("ENTERING/EXITING [" className + "." + methodName "()]");

Le problème est que je ne sais pas comment faire pour obtenir une référence à la classe et les noms de méthode. J'ai essayé:

joinPoint.getThis().getClass()

mais ce qui semble le retour de l'appelant nom de la classe.

class A {
    public void a() {
        B.b();
    }
}


class B {
    public void b() {
        ...
    }
}

le résultat suivant du journal

ENTERING [A.b()]

quelqu'un peut-il donner un peu d'aide sur la façon d'obtenir le véritable joinpoint la classe et le nom de la méthode

source d'informationauteur smauel