AOP – Logging utility

For basics of AOP refer

http://kamalmeet.com/aop/aspect-oriented-programming/
http://kamalmeet.com/aop/aspect-oriented-programming-implementation/

Here is a simple logging example using aspectj

package com.my.aspect;

import org.apache.log4j.Logger;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;

/**
 * This is class implementing logging aspect. This is a generic class which can
 * be embedded into any piece of code for implementing logging.
 * 
 * @author kamalmeet
 * @version 1.0
 */
@Component
@Aspect
public class LoggingAspect {

	private static final Logger LOG = Logger.getLogger(LoggingAspect.class);;
	

	private static final String POINT_CUT = "execution(* com.my.package.*.*(..))";

	/**
	 * This method is used to log action before entering into point-cut method.
	 * 
	 * @param joinPoint
	 */
	// @Before(POINT_CUT)
	@Before(POINT_CUT)
	public void logBefore(JoinPoint joinPoint) {
		LOG.info("Entering function: "+ joinPoint.getSignature());
		
	}

	/**
	 * This method is used to log action after returning from point-cut method.
	 * 
	 * @param joinPoint
	 */
	@AfterReturning(POINT_CUT)
	public void logAfterReturing(JoinPoint joinPoint) {
		LOG.info("Exiting successfully from function: "+
				joinPoint.getSignature());
	}

	/**
	 * This method is used to log error in case some exception condition
	 * occurred in the given point-cut method.
	 * 
	 * @param joinPoint
	 */
	@AfterThrowing(POINT_CUT)
	public void logAfterThrowing(JoinPoint joinPoint) {
		LOG.error("Exiting with exception thrown from function: "+
				joinPoint.getSignature());
	}
}