1. 程式人生 > >封裝service層錯誤並列印進日誌

封裝service層錯誤並列印進日誌

今天發現dwr拋錯時候並沒有報出error message,而是一個空字串,看了下是因為某Exception型別沒有message,而且之前service層也沒有處理錯誤並記錄而是直接往上層報錯,只是把錯誤顯示到網頁上,導致之後檢視service層錯誤沒有一個統一的日誌,因此這裡使用sprng3的AOP註釋給所有的service加了個錯誤處理,並統一記錄到錯誤日誌!AOP類如下:

package com.myweb.aspect;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

/**
 * @author jsczxy2
 * Service 錯誤捕捉AOP(記錄到error.log日誌)
 */
@Aspect
@Component
public class ServiceAspect {
	
	Log log = LogFactory.getLog(getClass());
	
	
	@Around("execution(* com.myweb
.*service..*(..))") public Object cacheException(ProceedingJoinPoint jp) throws Throwable{ try { // 執行處理 Object result = jp.proceed(); return result; }catch (Exception e) { log.error("[" + jp.getTarget().getClass().getSimpleName()+"."+jp.getSignature().getName() + "]=======>" + e); throw new Exception(e); } } }