AspectJ pointcuts: obtenga una referencia a la clase de punto de unión y nombre

Estoy usando el estilo @AspectJ para escribir aspectos, para manejar el registro en nuestra aplicación. Básicamente tengo un punto de corte configurado así:

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

y luego un consejo de antes y después como este:

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

Quiero crear un registro en estos métodos en el siguiente formato:

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

El problema es que no sé cómo obtener una referencia a los nombres de clase y método. Yo he tratado

joinPoint.getThis().getClass()

pero esto parece devolver el nombre de la clase de la persona que llama.

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


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

resultaría en el siguiente registro

ENTERING [A.b()]

puede alguien dar alguna ayuda sobre cómo obtener la clase de punto de unión real y el nombre del método

Respuestas a la pregunta(2)

Su respuesta a la pregunta