=== anyframe --context-annotaion.xml {{{ }}} --context-transaction.xml {{{ }}} --doremi --root-context.xml {{{ }}} -. ProfilingAdvice {{{ package com.everland.ws.doremi.common.log; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Locale; import java.util.Map; import org.aspectj.lang.ProceedingJoinPoint; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StopWatch; import com.everland.ws.doremi.common.domain.ReturnModel; import com.everland.ws.doremi.common.service.impl.XiLogDao; public class ProfilingAdvice { @Autowired private XiLogDao xiLogDao; public Object trace(ProceedingJoinPoint joinPoint) throws Throwable { Map log = new HashMap(); StopWatch stopWatch = new StopWatch(); long startTime = System.currentTimeMillis(); long endTime; SimpleDateFormat formatter = new SimpleDateFormat ( "yyyyMMddHHmmss", Locale.KOREA ); DecimalFormat df = new DecimalFormat("0.##"); Object retVal = joinPoint.proceed(); endTime = System.currentTimeMillis(); endTime = System.currentTimeMillis (); Date stDate = new Date ( startTime ); Date edDate = new Date ( endTime ); String strStartDate = formatter.format ( stDate ); String strEndDate = formatter.format ( edDate ); String strResDate = df.format((Double.parseDouble(""+endTime) - Double.parseDouble(""+startTime))/1000); ReturnModel model = (ReturnModel)retVal; String interfaceId=joinPoint.getTarget().getClass().getName(); String interfaceMethod=joinPoint.getSignature().getName(); log.put("if_id", interfaceId); //인터페이스 아이디 log.put("if_method", interfaceMethod); //인터페이스 메소드 log.put("st_date", strStartDate.substring(0, 8)); //요청 시작일 log.put("st_time", strStartDate.substring(8)); //요청 시간 log.put("ed_date", strEndDate.substring(0, 8)); //응답 시작일 log.put("ed_time", strEndDate.substring(8)); //응답 시간 log.put("res_time", strResDate); //수행시간 log.put("status", model.getZSTATUS() != null ? model.getZSTATUS() : "N"); //처리결과 상태 log.put("message", model.getZMESSAGE()!= null ? model.getZMESSAGE() : "No Header Message"); //결과메세지 // for ( Iterator it = log.entrySet () .iterator () ; it.hasNext () ; ) { // Map.Entry entry = ( Map.Entry ) it.next () ; // Object key = entry.getKey () ; // Object value = entry.getValue () ; // System.out.println((String)key+" : "+(String)value); // } xiLogDao.saveXiLog(log); return retVal; // StringBuffer logMessageStringBuffer = new StringBuffer(); // logMessageStringBuffer.append(" 결과메세지 : "+model.getZMESSAGE()+"\r\n"); // logMessageStringBuffer.append(" 인터페이스 아이디 : "+joinPoint.getTarget().getClass().getName()+"\r\n"); // logMessageStringBuffer.append(" 메소드명 : "+joinPoint.getSignature().getName()+"\r\n"); // logMessageStringBuffer.append(" 파라미터 : "+ joinPoint.getArgs()+"\r\n"); // logMessageStringBuffer.append(" 요청 시작일 : "+ strStartDate.substring(0, 8)+"\r\n"); // logMessageStringBuffer.append(" 요청 시간 : "+ strStartDate.substring(8)+"\r\n"); // logMessageStringBuffer.append(" 응답 시작일 : "+ strEndDate.substring(0, 8)+"\r\n"); // logMessageStringBuffer.append(" 응답 시간 : "+ strEndDate.substring(8)+"\r\n"); // logMessageStringBuffer.append(" 수행시간 : "+ strResDate+"\r\n"); // logMessageStringBuffer.append(" 처리결과 상태 : "+ model.getZSTATUS()+"\r\n"); // System.out.println(logMessageStringBuffer.toString()); } } }}}