当前位置: 首页 >文章 > apollo动态配置实现接口日志打印
收藏
分享

apollo动态配置实现接口日志打印

举报小虎转载君小虎转载君发布于 2021-08-081463阅读0点赞
今后你再也不用担心查看接口日志找不到了,你可以按照你想要的配置一下就可以...


本文主要讲解apollo动态配置实现接口日志打印,阅读本文大概需要8分钟。

前言


想必大家在开发中都会碰到过这么几种情况,接口日志很难查啊,服务器日志太多看的眼花缭乱。这还好可以通过前面讲的熟悉这些Java排查工具就够了一些工具完成,关键是服务器日志堆积告警,尤其是qa环境(quality assurance), 然后你收到这条短信报警连忙登录到机器,开始了一顿rm操作解决了美滋滋,过了半小时,你又收到一条短信告警,很熟悉,又是这个...

于是你开始寻思这哪里天天来的这么多日志打印,出于好奇的你打开了温顺的IDEA,看着满屏的代码,时不时轻微右键看看git master 提交者,知道真相的你都想砸电脑了。
循环体里一堆日志,日志相似度很高,每个接口的参数和结果都打日志,debug日志没删除,居然还有带有'xxxTest'字样日志,从头到尾没看到一条Warn日志,除了Info日志就是Error日志,实在看不下去了要合电脑了,突然看到某个类以xxxAspect结尾的文件?哦?难道这是业务切面?出于好奇点进去一看,尼玛 日志切面,切入点是所有biz业务代码方法...

那么,针对日志不规范,服务器日志太多,日志治理这块我们有什么解决方案呢,于是灵机一动,万物且可配置,是不是这个东西可以做成配置的呢,于是你就开始着手设计了起来。


这么多类,这么多方法,我是不是每个接口的日志打印如何能做成开关控制就好了?搞定!
开关控制做好了,那么打印日志的内容呢,我需要打印哪些内容合适呢?入参?返回值?


日志打印的内容为接口的入参、响应结果,响应耗时..可扩展参数等等。搞定!

日志打印内容定好了,那么日志打印级别呢?每个方法每个场景可能不一样啊,不同环境我也想不一样怎么办呢?


懂了,不是万物皆配置么,我做成配置不就好啦,配置几种不同的策略即可,搞定!
*配置?我用什么做配置呢,我这个项目是分布式项目,于是经过balabala一顿百度 你可能看到有可选的diamond、apollo、disconf 等,于是你丢骰子最后选择了apollo,其实都可以哈哈哈,理解理解。


通过控制接口的黑白名单日志打印实现动态日志打印,搞定!

好了,思路有了,开始coding尝试实现起来。

apollo动态配置实现接口日志打印


首先,我们定义一个控制开关策略的枚举LogSwitch。

其次,日志打印的内容我们也定义一个枚举 LogDimension.


好了,接下来打印的日志关键要素已经形成,我们需要定义一个切面类来完成。
既然有切面,那我们就可以一个切入点注解来完成我们的切面,定义日志打印注解LogAnnotation 不需要任何属性,对我们来说只是一个切面标识。

接下来可以写我们的切面类了,我们定义 LogAspect 。


总结一下


动态日志打印由相应的Aspect进行日志统一输出主要解决的是日志输出逻辑固定、日志输出过多,排查问题无法动态调整日志内容。结合apollo以及注解 可动态调节关注点、 可动态控制日志输出内容 的统一切面工具。使用方式也特别简单,在代码内需要被LogAspect动态管理日志的方法加上@LogAnnotation注解即可。


上面一切完成,那么今后你再也不用担心查看接口日志找不到了,你可以按照你想要的配置一下就可以啦!



本文原创,未经作者允许不可转载!
更多内容,欢迎关注作者微信公众号:橘松Java技术窝!


0条评论
别默默看啦~登录/注册一起参与讨论吧~

暂无评论

请选择举报理由

违反法律法规

侵犯个人权益

有害网站环境

更多训练营>>

为你推荐 · 训练营(全勤打卡报名费全额返累计全额返用户133,673人)

【5月】零基础动态表情包创作训练营
距离开班仅剩13天27人已报名
【6月】人像后期案例实操训练营
距离开班仅剩40天23人已报名
【7月电脑剪映】短视频剪辑入门训练营
距离开班仅剩62天3人已报名
特惠
充值
7折购
今日还在继续学习的你,太棒了!
7
折扣券可用于
年费无限VIP
立 即
使 用
此活动优惠不可与其他活动叠加使用
有效期:000000
消息
登录即可查看消息记录
建议
意见
官方
客服
在线咨询客服热线

您可以与在线客服进行沟通获得帮助

工作日:9:00~22:00节假日:9:00~18:00

联系在线客服

您可以电话联系客服进行沟通获得帮助

工作日:9:30~18:30

400-862-9191
虎课
积分
免费学习89000+个教程!
配套素材、源文件一键下载!
昨日学员已学习了37,480
并提交了326份作业!
登录后立即学习!
loading
微信扫码关注即可登录
您需要同意协议才可以进行登录
登录虎课网,每天免费学课程全站 89000+ 视频会员教程 | 每日可免费学 1
为确保账户信息安全
请先进行真实姓名验证后进行充值付款
立即验证