国内最专业的IT技术学习网

UI设计

当前位置:主页 > 亚博体育app手机版 >

别在Java代码里乱打日志了,这才是正确的打日志

发布时间:2019/06/27标签:   日志    点击量:

原标题:别在Java代码里乱打日志了,这才是正确的打日志
别在Java代码里乱打日志了,这才是正确的打日志姿势!应用slf4j 应用门面形式的日记框架,有益于保护和各个类的日记处置方法同一。 完成方法同一应用: Logback框架打日记的准确方法甚么时间应当打日记 当你碰到成绩的时间,只能经过debug功效来断定成绩,你应当斟酌打日记,精良的体系,是能够经过日记停止成绩定为的。 当你遇到if…else 或许 switch如许的分支时,要在分支的首行打印日记,用来断定进入了哪个分支 常常以功效为中心停止开辟,你应当在提交接码前,能够断定经过日记能够看到全部流程基础格局必需应用参数化信息的方法:logger.debug("Processingtradewithid:[{}]andsymbol:[{}]",id,symbol);关于debug日记,必需推断能否为debug级别后,才停止应用:if(logger.isDebugEnabled()){logger.debug("Processingtradewithid:"+id+"symbol:"+symbol);}不要停止字符串拼接,那样会发生许多String工具,占用空间,影响机能。反例(不要这么做):logger.debug("Processingtradewithid:"+id+"symbol:"+symbol);应用[]停止参数变量断绝若有参数变量,应当写成以下写法:logger.debug("Processingtradewithid:[{}]andsymbol:[{}]",id,symbol);如许的格局写法,可读性更好,关于排查询题更有关心。差别级其余应用ERROR:基础观点影响到顺序畸形运转、以后恳求畸形运转的异样情形: 翻开设置文件失利 全部第三方对接的异样(包含第三方前往过错码) 全部影响功效应用的异样,包含:SQLException和除了营业异样以外的全部异样(RuntimeException和Exception)不该该呈现的情形:比方要应用Azure传图片,然而Azure未呼应假如有Throwable信息,须要记载实现的客栈信息:log.error("猎取用户[{}]的用户信息时犯错",userName,e);阐明假如停止了抛出异样操纵,请不要记载error日记,由终极处置方停止处置:反例(不要这么做):try{....}catch(Exceptionex){StringerrorMessage=String.format("Errorwhilereadinginformationofuser[%s]",userName);logger.error(errorMessage,ex);thrownewUserServiceException(errorMessage,ex);}WARN基础观点不该该呈现然而不影响顺序、以后恳求畸形运转的异样情形: 有容错机制的时间呈现的过错情形 找不到设置文件,然而体系能主动创立设置文件马上濒临临界值的时间,比方: 缓存池占用到达忠告线营业异样的记载,比方: 当接口抛出营业异样时,应当记载此异样INFO:基础观点体系运转信息 Service方式中关于体系/营业状况的变革 重要逻辑中的分步调内部接口局部 客户端恳求参数(REST/WS) 挪用第三方时的挪用参数和挪用成果阐明 1.并不是全部的service都停止收支口办理记载,繁多、简略service是没故意义的(job除外,job须要记载开端和停止,)。 反例(不要这么做):publicListlistByBaseType(IntegerbaseTypeId){log.info("开端查问基地");BaseExampleex=newBaseExample();BaseExample.Criteriactr=ex.createCriteria();ctr.andIsDeleteEqualTo(IsDelete.USE.getValue());Optionals.doIfPresent(baseTypeId,ctr::andBaseTypeIdEqualTo);log.info("查问基地停止");returnbaseRepository.selectByExample(ex);}

上一篇:没有了

下一篇:没有了

返回
版权信息Copyright ? IT技术教程 版权所有??? ICP备案编号:鲁ICP备09013610号