使用springmvc的全局攔截的時候, 在測試的時候儘可能完美的將異常相關使用日誌記錄下來

由於 在咱們寫代碼的時候 出現異常的時候, 有時候 控制檯會拋出不少其餘信息,apache

好比 debug,info,,,,反正不少,可能就把 異常信息給 跑過去了。服務器

因此LOG 記錄仍是須要的。session

因此這裏  總結了一下 應該記錄的相關內容。對於咱們快速排除錯誤確定有幫助ide

在生產環境也是適用的,能夠加速 把 session 裏面的內容也給打印出來更好。url

@Component
public class GlobalExceptionHandler implements HandlerExceptionResolver {


	private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(GlobalExceptionHandler.class);
      
   
      
    @Override
    public ModelAndView resolveException(HttpServletRequest request,HttpServletResponse response,Object obj,Exception ex){
    	 ex.printStackTrace();//打印異常,方便問題追蹤
	

		log.error("================ start 異常記錄==================================");
		String url_error = "http://" + request.getServerName() // 服務器地址
				+ ":" + request.getServerPort() // 端口號
				+ request.getContextPath() // 項目名稱
				+ request.getServletPath() // 請求頁面或其餘地址
				+ "?" + (request.getQueryString()); // 參數
		log.error("錯誤的來源完整異常地址:" + url_error);
		Map<String, String[]> pars = request.getParameterMap();
		Set<String> parameterKey2 = pars.keySet();
		Iterator<String> iterator2 = parameterKey2.iterator();
		while (iterator2.hasNext()) {
			String tKey = iterator2.next();
			String tValue = pars.get(tKey)[0];
			log.error("request提交參數key:" + tKey + " , value值:" + tValue);
		}
		log.error(ex.getMessage(), ex);// 能夠把全部的異常堆棧信息打印出來
		log.error("================ end 異常記錄==================================");
相關文章
相關標籤/搜索