您当前的位置:首页 > 电脑百科 > 程序开发 > 程序员

程序员日志这么记,没人可以推锅给你

时间:2021-04-12 11:18:22  来源:掘金  作者:think123

不知道你有没有经历过被日志支配的恐惧?我就经历过,以前在服务器上要找到一个请求经过所有链路的日志,并串联起来发现真的好难,而且有了日志还没用,最好还有有参数,有响应可以串联起来整个业务逻辑,最大程度进行场景复原,那段找日志的时光真是不堪回首,令人难忘,好在后来我离开了再没去服务器上看过日志了。

针对这种场景,怎么解呢?针对每次请求如果我们生成一个id,每次打印日志的时候都把这个id打印出来,那么当我们搜索每次请求的时候,根据这个id进行搜索就行了,本文也是基于这个思路来实现这个功能的。

请求链路

client ---> Tomcat ---> other API

为了简化我们的请求逻辑,这里假设client访问我们的tomcat,然后tomcat访问外部服务

记录请求参数以及响应

为了记录请求参数以及响应结果,我们需要借助Filter来解决这个问题

程序员日志这么记,没人可以推锅给你

 

 

记录Restful请求以及响应

一般而言,我们的服务会调用其他服务,无论你是使用的dubbo还是http,我们都能通过拦截器来记录请求和响应参数,我们以rest来进行举例

程序员日志这么记,没人可以推锅给你

 

由于我们的response是stream,我们想要消费多次(一次返回给调用者,一次用于记录),所以我们必须对这个response进行封装

程序员日志这么记,没人可以推锅给你

 

Log4j2配置

程序员日志这么记,没人可以推锅给你

 

至此,我们的日志记录已经初具雏形了,这个时候当我们访问后端请求时,就可以通过返回的requestId去服务器上查询这次请求的链路日志

程序员日志这么记,没人可以推锅给你

 

后台日志如下

程序员日志这么记,没人可以推锅给你

 

查询时我们可以使用这样的命令

cat api.log | grep ${requestId}

这样就足够了吗?不,还不够好。我们可以将我们的日志发送到ElasticSearch,然后通过Kibana进行搜索,这样就不用每次查看日志都还要登录服务器了

自定义Appender

由于需要将日志发送到ES,所以我们需要自定义appender来发送日志,一个简单的appender的如下

程序员日志这么记,没人可以推锅给你

 

然后在Log4j中进行如下配置即可

程序员日志这么记,没人可以推锅给你

 

这里我的es使用的是本地安装的es,所以在运行的时候需要先启动es

在Kibana中查询

程序员日志这么记,没人可以推锅给你

 

至此,我们的日志平台就搭建起来了,以后别人就别想那么容易的推锅给你了。

所有的代码我都上传到了我的github: (
https://github.com/generalthink/code)

以供大家参考

总结

核心思想就是让 requestId出现在需要记录日志的各个地方,然后通过requestId串联起来。

都看到这里了,不点个赞吗?

作者|think123|掘金



Tags:程序员日志   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
不知道你有没有经历过被日志支配的恐惧?我就经历过,以前在服务器上要找到一个请求经过所有链路的日志,并串联起来发现真的好难,而且有了日志还没用,最好还有有参数,有响应可以串联...【详细内容】
2021-04-12  Tags: 程序员日志  点击:(247)  评论:(0)  加入收藏
▌简易百科推荐
JAVA开发工程师(北京)本科 3-5年经验 面议 (招1人)岗位职责:1.负责我行应用系统的设计,完成软件编码工作,负责管理代码设计规范等工作;2.根据应用需求分析说明书,评估需求研发的可行...【详细内容】
2021-12-27  just do丶IT公众号    Tags:国企   点击:(1)  评论:(0)  加入收藏
今天聊聊编程的本质。程序就是数据结构+控制+逻辑,程序员编程工作的本质是翻译,翻译机要来了,程序员怎么办?黑客帝国中的程序黑客帝国4就要上映了,不知道前三部你看懂了么?值得多...【详细内容】
2021-12-17  博士聊IT    Tags:程序员   点击:(8)  评论:(0)  加入收藏
梦醒之后,每个人对于这份职业的未来、互联网行业的未来,以及更重要的,自己的未来都有了更现实的判断 文 | 祝颖丽编辑 | 黄俊杰一个生于 1986 年的人,他所走过的前半生:从出生起,...【详细内容】
2021-12-03    财经杂志  Tags:程序员   点击:(15)  评论:(0)  加入收藏
前些天在头条看到一个八二年的哥们,述说自己找工作屡次被拒的问题,在网上引起了广泛的讨论,这件事给我留下了很深的印象,因为这哥们和我同是程序员,都人到中年,上有老下有小。唯一...【详细内容】
2021-12-01  云南贤哥在深圳    Tags:程序员   点击:(20)  评论:(0)  加入收藏
很多读者都问过一个问题:程序员如何实现高速成长?之前也写过相关的文章,强调的主要是夯实计算机体系基础知识。 再说另一个诀窍:多看经典开源项目,这些项目大多是众多顶尖程序员...【详细内容】
2021-11-30  findyi    Tags:程序员   点击:(14)  评论:(0)  加入收藏
近日,一位45岁的网民在中国政府网留言求职,引发关注。该网民自称是一名软件开发人员,今年45岁,精通各种技术体系,“而我辞职回家半年后再回来寻找工作机会的时候,却发现连个面试...【详细内容】
2021-11-17  郭主任    Tags:程序员   点击:(42)  评论:(0)  加入收藏
即使在安全技术取得进步之后,网络犯罪仍在不断增加。据统计,网络犯罪每分钟给企业造成约 290 万美元的损失。主要是因为新技术不断涌现,难以维护安全。随着网络威胁的增加,网络...【详细内容】
2021-11-04  章大千    Tags:编程语言   点击:(40)  评论:(0)  加入收藏
北漂小伙李强(化名),在北京互联网大厂工作7年,月薪3万,离职回老家开摄影店,亏了200万。李强出生于山西一座名不经传的小城市,互联网专业大学毕业的他,没有听父母的劝言回到家乡考公...【详细内容】
2021-10-29  霸王课  今日头条  Tags:程序员   点击:(51)  评论:(0)  加入收藏
程序员是青春饭,这在国内似乎是公认的。所以很多公司不愿招大龄程序员,很多程序员也“知趣”地及早转型。有的做管理,有的做架构,我还见过改行卖保险的。总之,年龄大了不想敲代码...【详细内容】
2021-10-27  编程的艺术    Tags:   点击:(29)  评论:(0)  加入收藏
软件工程专业有Web开发、移动终端开发、大数据开发、计算机系统工程师、视频开发工程师、计算机软件应用工程师等就业方向。第一,Web开发。Web开发包括前端开发和后端开发。...【详细内容】
2021-10-19  辰新   企鹅号  Tags:软件工程   点击:(79)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条