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

站群系统开发wordpress自动短网址插件

站群系统开发,wordpress自动短网址插件,wordpress知更鸟最新破解,农村电商扶贫网站建设文章目录 一、引言二、使用AOP实现日志打印三、logback单独打印api调用信息 一、引言 相信我们都有过这样的经历#xff0c;在提供第三方对外接口时#xff0c;为了防止推诿扯皮#xff0c;我们会在自己接口被调用时日志打印一下第三方的调用参数#xff0c;再在业务逻辑结… 文章目录 一、引言二、使用AOP实现日志打印三、logback单独打印api调用信息 一、引言 相信我们都有过这样的经历在提供第三方对外接口时为了防止推诿扯皮我们会在自己接口被调用时日志打印一下第三方的调用参数再在业务逻辑结束返回时再打印一下给第三方的返回参数这样在后续遇到bug时能用日志方便排shuai查guo。 如果老老实实的手动打印日志我们的代码将会是这个样子 publish Response queryTask(RequestParam param) {// 打印第三方请求参数LOGGER.info(queryTask param:{}, JSON.toJSONString(param));// Response为执行查询业务后的结果Response rsp null;// 打印返回给第三方的结果LOGGER.info(queryTask response:{}, JSON.toJSONString(rsp))return rsp; }每个接口都这样去写又麻烦又怕自己忘记如此机械化的简单行为有没有什么办法能够让程序帮我们做这份工作让我们的代码变得更加优雅呢Spring的AOP是一个不错的思想。 二、使用AOP实现日志打印 定义一个api注解它所标注的方法均能够打印入参和返回 Target({ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) public interface ApiLog {}定义我们的切面和切点 Component Aspect public class ApiLogAspect {// 切入点Pointcut(annotation(com.yangyungang.open.aspect.log.anno.ApiLog))private void apiLogPointCut() {}// 环绕通知Around(apiLogPointCut())public Object around(ProceedingJoinPoint joinPoint) throws Throwable {MethodSignature signature (MethodSignature) joinPoint.getSignature();// 类名String className joinPoint.getTarget().getClass().getName();// 方法名String methodName signature.getName();// 参数Object[] args joinPoint.getArgs();StringBuffer requestInfo new StringBuffer();requestInfo.append(the api method ().append(className).append(:).append(methodName).append() called, request param: );if (AdaptorCommonUtil.checkSafe(args)) {Arrays.stream(args).forEach(p - requestInfo.append(JSON.toJSONString(p)).append( ));}// 在方法执行前打印LOGGER.info(requestInfo.toString());// 执行方法Object result joinPoint.proceed();// 在方法执行后打印LOGGER.info(the api ({}:{}) method return:{}, className, methodName, JSON.toJSONString(result));return result;} }ApiLogAspect这个类为一个切面Pointcut代表切入点这里我的注解ApiLog就为切入点Around(“apiLogPointCut()”)代表在切入点附近进行环绕通知也就是要执行我们前面说的日志打印我们在方法执行前后都进行了拦截进行日志打印joinPoint.proceed()才真正执行我们的业务逻辑。 写好该切面后我们要做的仅仅只是在api方法上加入注解就可以了 ApiLog publish Response queryTask(RequestParam param) {// Response为执行查询业务后的结果Response rsp null;return rsp; }所达到的效果和“引言”中的代码块一致。 三、logback单独打印api调用信息 当我写好接口后又发现api调用日志和我们的业务日志完全糅杂在了一起即使将来排查也难以进行区分由于我们项目使用的是logback可以让我们的api包通常第三方api会单独写到一个包里单独打印到一个日志文件中这样日志不就很清爽了吗只需要改一下logback的配置文件即可 !-- api调用的日志单独打印 --logger namecom.yangyungang.open.aspect.log.aop.ApiLogAspect levelINFO additivityfalseappender-ref refOPENAPI /appender-ref refSTDOUT //logger!-- api日志Appender --appender nameOPENAPI classch.qos.logback.core.rolling.RollingFileAppenderfilter classch.qos.logback.classic.filter.ThresholdFilterlevelINFO/level/filterFile${LOG_HOME}/${COMPONENT_ID}.${SEGMENT_ID}.openApi.debug.log/FilerollingPolicy classlogback.rolling.log.gather.TimeBasedBackUpRollingPolicyFileNamePattern${LOG_HOME}/${COMPONENT_ID}.${SEGMENT_ID}.openApi.debug.log.%i.zip/FileNamePatternMinIndex1/MinIndex!--最多十个文件 --MaxIndex${log.max.index}/MaxIndex/rollingPolicytriggeringPolicy classch.qos.logback.core.rolling.SizeBasedTriggeringPolicyMaxFileSize${log.openApi.max.size}/MaxFileSize/triggeringPolicyencoderpattern${FILE_LOG_PATTERN}/patterncharset${log.charset}/charset/encoder/appender
http://www.pierceye.com/news/592756/

相关文章:

  • 制作一个链接网站400电话网站模板
  • 网站建设网站网站建设网站濮阳网站建设网站
  • 追天网站建设 优帮云网页设计基础入门
  • 北京网站的建立的wordpress mofile
  • 在网上做翻译的网站私募网站建设
  • 网站建设明薇通网络服务好企业官网网站建设免费
  • php开发企业网站教程企业网站怎么建设公司
  • 网站开发 保密期限不用实名认证的网页游戏
  • 网站制作公司的流程网络运营公司经营范围
  • 杭州公司网站制作维护运城建设银行网站
  • 做一个个人主页的网站怎么做网站整合建设方案
  • 做亚马逊运营要看哪些网站专业排名
  • 网站做跳转影响排名吗店面设计多少钱一个平方
  • 中国建设注册中心网站启用中文域名大网站
  • 贵阳市建设城乡规划局网站一个新产品策划方案
  • 做设计什么网站平台好点做私活河南省建设厅53号文
  • 酷网站欣赏mit网站可以做app
  • 网站建设公司哪家好 都来磐石网络推广软件平台排行榜
  • 个人博客网站开发毕业设计东莞建设网站官网住房和城乡
  • 怎么下载网站的视频室内设计专业网站
  • 和幼儿做网站爱wordpress主题简
  • wordpress 大型网站吗怎么做网站超市
  • 太原建设厅官方网站做电商需要准备多少钱
  • 公司网站建设安全的风险wordpress t1主题
  • 手机下载视频网站模板下载失败杭州做网站五
  • 招聘wordpress网站高手兼职wordpress会员付费插件
  • 网站建设综合报告威海网站建设兼职
  • 做的网站浏览器提示不安全网站开发四川
  • 高端网站设计有哪些企业网站开发php
  • php网站模块网站建设协议 模板