package egovframework.rte.fdl.logging.sample.aop;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.aspectj.lang.JoinPoint;
public class MethodParameterLoggingAspect {
@SuppressWarnings("unchecked")
public void beforeLog(JoinPoint thisJoinPoint) {
Class clazz = thisJoinPoint.getTarget().getClass();
String className = thisJoinPoint.getTarget().getClass().getName();
String methodName = thisJoinPoint.getSignature().getName();
StringBuffer buf = new StringBuffer();
buf.append("\n== MethodParameterLoggingAspect : [" + className + "."
+ methodName + "()] ==");
Object[] arguments = thisJoinPoint.getArgs();
int argCount = 0;
for (Object obj : arguments) {
buf.append("\n - arg ");
buf.append(argCount++);
buf.append(" : ");
buf.append(ToStringBuilder.reflectionToString(obj));
}
Log logger = LogFactory.getLog(clazz);
if (logger.isDebugEnabled())
logger.debug(buf.toString());
}
}