spirngMVC如何在项目中打印异常日志+springmvc事务控制详解

来源:互联网 发布:校园寝室网络设计方案 编辑:程序博客网 时间:2024/06/07 13:31

首先 service层的增、删、改操作前要加注解@Transactonal,如下  

@Transactionalpublic void saveErpProductType(ErpProductType erpProductType) {erpProductTypeDao.saveOrUpdate(erpProductType);}
这样,当此方法出现异常时,会抛出异常,在Controller层捕获,此时,在Controller层就需要用try和catch处理,使数据库不不发生事务,如下

private static final Logger log = Logger.getLogger(ProductTypeAction.class);//括号里ProductTypeAction.class是当前Controller类@RequiresPermissions(value = { "1465801690631" })@RequestMapping(value = "/saveProductType")public ModelAndView validateTypeName(HttpServletRequest request, HttpServletResponse response) throws Exception {// 类型ErpProductType erpProductType = new ErpProductType();String typeName = request.getParameter("typeName").trim();erpProductType.setTypeCode(erpProductTypeService.getMaxProductTypeFromMemory());erpProductType.setTypeName(typeName);ErpUser loginUser = (ErpUser) request.getSession().getAttribute(Constant.USER);String marketNo = loginUser.getMarketNo();try {erpProductTypeService.saveErpProductType(erpProductType); // 存入数据库LoadOnStartService.erpProductTypeTable.put(erpProductType.getId(), erpProductType); // 更新内存LoadOnStartService.refreshMarketDataTable(marketNo, Constant.ONE);JSONObject jsonObject = new JSONObject();jsonObject.put("msg", "保存成功");response.getWriter().write(jsonObject.toString());return null;} catch (Exception e) {log.info(e.getMessage());JSONObject jsonObject = new JSONObject();jsonObject.put("msg", "保存失败");response.getWriter().write(jsonObject.toString());return null;}}

另外,就是log的配置文件了,如下是xml方式,网上还有propertis的配置方式

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'><!-- 根logger的设置 OFF,ERROR,WARN,INFO,DEBUG --><root><priority value="INFO" /><appender-ref ref="CONSOLE" /><appender-ref ref="myFile" /></root><appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern"value="%d - %c -%-4r [%t] %-5p %x - %m%n" /></layout><!--限制输出级别--><filter class="org.apache.log4j.varia.LevelRangeFilter"><param name="LevelMax" value="ERROR" /><param name="LevelMin" value="TRACE" /></filter></appender><appender name="myFile"class="org.apache.log4j.DailyRollingFileAppender"><filter class="org.apache.log4j.varia.LevelRangeFilter"><param name="levelMin" value="info" /><param name="levelMax" value="error" /><param name="AcceptOnMatch" value="true" /></filter><param name="File" value="${erp.root}/logs/today.log" /><!-- 设置日志输出文件名 --><param name="Append" value="true" /><param name="DatePattern" value="'.'yyyy-MM-dd" /><param name="MaxBackupIndex" value="10" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern"value="[%d{yyyy-MM-dd HH:mm:ss}] [%p] [%c] %m%n" /></layout></appender></log4j:configuration>


0 0