当前位置: 首页 > news >正文

盐城专业做网站较好的公司宿州市做网站的公司

盐城专业做网站较好的公司,宿州市做网站的公司,安徽省干部建设教育网站,网络app制作网站有哪些内容软件中总免不了要使用诸如 Log4net, Log4j, Tracer 等东东来写日志#xff0c;不管用什么#xff0c;这些东东大多是大同小异的#xff0c;一般都提供了这样5个日志级别#xff1a; Debug Info Warn Error Fatal 一个等级比一个高#xff0c;但…软件中总免不了要使用诸如 Log4net, Log4j, Tracer 等东东来写日志不管用什么这些东东大多是大同小异的一般都提供了这样5个日志级别    × Debug    × Info    × Warn    × Error    × Fatal        一个等级比一个高但是在具体开发中关于应该如何选择适应的等级却没有找到好的文章进行说明。记录一下自己的一些看法以便日后使用吧。 Debug         这个级别最低的东东一般的来说在系统实际运行过程中一般都是不输出的。因此这个级别的信息可以随意的使用任何觉得有利于在调试时更详细的了解系统运行状态的东东比如变量的值等等都输出来看看也无妨。当然在每一个 Debug 调用之前一定要加上 If 判断。 Info         这个应该用来反馈系统的当前状态给最终用户的所以在这里输出的信息应该对最终用户具有实际意义也就是最终用户要能够看得明白是什么意思才行。从某种角度上说Info 输出的信息可以看作是软件产品的一部分就像那些交互界面上的文字一样所以需要谨慎对待不可随便。 Warn、Error、Fatal         警告、错误、严重错误这三者应该都在系统运行时检测到了一个不正常的状态他们之间的区别要区分还真不是那么简单的事情。我大致是这样区分的所谓警告应该是这个时候进行一些修复性的工作应该还可以把系统恢复到正常状态中来系统应该可以继续运行下去。所谓错误就是说可以进行一些修复性的工作但无法确定系统会正常的工作下去系统在以后的某个阶段很可能会因为当前的这个问题导致一个无法修复的错误例如宕机但也可能一直工作到停止也不出现严重问题。        所谓Fatal那就是相当严重的了可以肯定这种错误已经无法修复并且如果系统继续运行下去的话可以肯定必然会越来越乱。这时候采取的最好的措施不是试图将系统状态恢复到正常而是尽可能地保留系统有效数据并停止运行。也就是说选择 Warn、Error、Fatal 中的具体哪一个是根据当前的这个问题对以后可能产生的影响而定的如果对以后基本没什么影响则警告之如果肯定是以后要出严重问题的了则Fatal之拿不准会怎么样则 Error 之。 示例代码 /*** pTitle: 用户登录处理/p* pDescription: /p* param loginId* return redirect page*/ RequestMapping(/user/login.vw) public String login(HttpServletRequest request, HttpServletResponse response, ModelMap model, ModelAttribute(login) Validated CusLogin login, BindingResult bindingResult) throws Exception { log.debug(用户登录开始......); //1.检查登录信息对象null判断 if (null login) { log.error(用户登录失败-登录信息不存在); bindingResult.addError( new FieldError( ErrorMsg.USERNOTEXIST[0], ErrorMsg.USERNOTEXIST[0], ErrorMsg.USERNOTEXIST[1])); request.getSession().setAttribute(LOGINSTATE, 1); login new CusLogin(); //1:代表登录时用户输入的信息有误 login.setLoginState(1); login.setPasswd(); model.addAttribute(login, login); return INDEX; } //2字段格式检查 if (bindingResult.hasErrors()) { ListObjectError ers bindingResult.getAllErrors(); for (ObjectError e : ers) { log.error(e.getDefaultMessage()); } //has error log.error(用户登录失败-请求参数错误username login.getLoginNm()); //redirect index.jsp request.getSession().setAttribute(LOGINSTATE, 1); login.setLoginState(1); login.setPasswd(); model.addAttribute(login, login); return INDEX; }//3. 第一登录失败再次登录需输入验证码判断验证码是否正确 if(1.equals(request.getSession().getAttribute(LOGINSTATE))){ if (login.getVerCode() null || !login.getVerCode().equalsIgnoreCase(VerCodeMaker.verImgGet(session))) { VerCodeMaker.verImgDel(request); log.error(用户登录失败-验证码检查失败username login.getLoginNm()); bindingResult.addError( new FieldError( ErrorMsg.VERCODEEROOR[0], ErrorMsg.VERCODEEROOR[0], ErrorMsg.VERCODEEROOR[1])); request.getSession().setAttribute(LOGINSTATE, 1); login.setLoginState(1); login.setPasswd(); model.addAttribute(login, login); return INDEX; } }try { //no error //4.获取登录用户信息条件为用户名和用户类型 LoginUsersDto dto loginService.login(login); if (null dto || StringUtility.isEmpty(dto.getLoginName())) { bindingResult.addError( new FieldError( ErrorMsg.USERNOTEXIST[0], ErrorMsg.USERNOTEXIST[0], ErrorMsg.USERNOTEXIST[1])); log.error(用户登录-查询用户信息失败,不存在或DB数据错误username login.getLoginNm()); request.getSession().setAttribute(LOGINSTATE, 1); login.setLoginState(1); login.setPasswd(); model.addAttribute(login, login); return INDEX; }//4. 密码检查 boolean isPwdExist loginService.passwordChk( dto.getLoginName(), login.getPasswd(), dto.getPassword()); if (!isPwdExist) { bindingResult.addError( new FieldError( ErrorMsg.PWDERROR[0], ErrorMsg.PWDERROR[0], ErrorMsg.PWDERROR[1])); request.getSession().setAttribute(LOGINSTATE, 1); login.setLoginState(1); login.setPasswd(); model.addAttribute(login, login); log.error(用户登录-密码检查失败username login.getLoginNm()); return INDEX; }//3.获取用户认证及支付信息 PayAuthInfoDto payInfoDto payService.getPayAuthInfoByCusCode(dto.getCusCode()); //4. 创建SESSION数据 User user new User(); if (null ! payInfoDto) { user UserSession.userSet(dto , payInfoDto); } else { user UserSession.userSet(dto); } UserSession.setUser(request, user); log.debug(用户登录结束);} catch (BizException e) { log.info(用户登录失败username login.getLoginNm(),e); bindingResult.addError( new FieldError( ErrorMsg.UNKNOWEXPCTION[0], ErrorMsg.UNKNOWEXPCTION[0], ErrorMsg.UNKNOWEXPCTION[1])); login.setPasswd(); model.addAttribute(login, login); return INDEX; } catch (Exception e) { log.info(用户登录失败username login.getLoginNm(),e); bindingResult.addError( new FieldError( ErrorMsg.UNKNOWEXPCTION[0], ErrorMsg.UNKNOWEXPCTION[0], ErrorMsg.UNKNOWEXPCTION[1])); login.setPasswd(); model.addAttribute(login, login); return INDEX; } finally{ request.getSession().removeAttribute(LOGINSTATE); }return REUSERINDEX; } 心得 log.error() 一般是需要if()的 log.info()一般是在try  catch 里面 log.debug() 做记录一般标志着方法的开始和结束。
http://www.pierceye.com/news/870331/

相关文章:

  • 医院网站建设公司价格低天津建设工程信息网 塘沽一中
  • 建设机械网站案例建国外网站需要多少钱
  • 比特币简易网站开发电商网站大全
  • 秀屿区建设局网站巨量广告投放平台
  • 合肥网站设计哪家公司好北京国贸网站建设公司
  • 帮人做网站怎么收费制作链接的app的软件有哪些
  • 商贸行业网站建设公司yoast wordpress seo
  • 上小学网站建设WordPress底部添加运行时间
  • 学校网站信息化建设工作心得网络营销现状分析
  • 藁城专业网站建设班级同学录网站建设
  • 北京手机网站开发公司wordpress用户列表
  • 上海 企业网站制成都营销型网站建设熊掌号
  • 无锡网站优化哪家好北京注册公司地址可以是住宅吗
  • 中国十大热门网站深圳哪做网站
  • 木渎网站建设聚美优品网站建设情况
  • 企业形象网站用什么语言开发网站优化要做哪些工作
  • 中国建设银行官网站电话号码wordpress关键词排名
  • 南通网站建设机构博物馆网站建设的根本意义
  • 食品企业网站建设中信建设有限责任公司陈晓佳
  • 中国网站服务器哪个好店名注册查询
  • 网站设计制作案例软件定制开发的发展前景
  • 中国联通网站备案小程序是什么原理
  • 企业网站建设御彩云dz做电影网站
  • 做网站需要的东西网站改版是什么
  • 网站需要哪些北京正规网站建设比较
  • 建设公共网站的手续成都公司网站制作
  • 怎么用安卓机顶盒做网站服务器怎样建立微信公众号平台
  • 专业的集团网站开发开发平面设计软件哪个好用
  • 天津模板建站代理咖啡厅网站开发目标
  • 电子商务网站运营 需要确立如何自己做网页