Primavera: aspecto de registro estándar (interceptor)

He encontrado muchos ejemplos sobre cómo crear un aspecto personalizado para el registro utilizando el marco de Spring como este o este, pero no encontré la implementación estándar / común de Spring para esta situación y pregunta. ¿Hay alguna implementación estándar del aspecto de registro de Spring o no?

¡Sí hay!

       

Consulte la API de PersonalizableTraceInterceptor , puede definir mensajes de entrada / salida / excepción separados con varios marcadores de posición:

  • $[methodName] – reemplazado por el nombre del método invocado
  • $[targetClassName] – reemplazado con el nombre de la clase que es el objective de la invocación
  • $[targetClassShortName] – reemplazado con el nombre corto de la clase que es el objective de la invocación
  • $[returnValue] – reemplazado con el valor devuelto por la invocación
  • $[argumentTypes] – reemplazado con una lista separada por comas de los nombres de clase cortos de los argumentos del método
  • $[arguments] – reemplazado por una lista separada por comas de la representación de cadenas de los argumentos del método
  • $[exception] – reemplazado con la representación de cadena de cualquier Throwable planteado durante la invocación
  • $[invocationTime] – reemplazado con el tiempo, en milisegundos, tomado por la invocación del método

Aquí está la lista de marcos que hacen el registro a través de AOP:

http://aspect4log.sf.net – hace un muy bonito registro a través de la anotación slf4j y @Log. Puede funcionar a través de SpringAOP y AspectJ. Con AspectJ funciona incluso para métodos y constructores privados y no requiere que una clase sea un Spring Bean. Muy fácil de usar, pude hacerlo funcionar con mi proyecto en 5 minutos.

http://loggifier.unkrig.de – hace el registro a través de java.util.logging, un documento demasiado complejo y no tan bueno, pero afirma que puede instrumentar archivos ya comstackdos jar / war / ear!

AbstractTraceInterceptor (de SpringAOP) y sus subclases SimpleTraceInterceptor y CustomizableTraceInterceptor. La configuración de registro se realiza por separado de las clases. Registros a través del registro de recursos comunes. Dado que está diseñado para SpringAOP, debe trabajar con Spring Beans (y solo con los métodos públicos de Spring Beans).