前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >化腐朽为神奇:简明日志规范

化腐朽为神奇:简明日志规范

作者头像
静儿
发布2018-08-28 15:35:00
6720
发布2018-08-28 15:35:00
举报
文章被收录于专栏:编程一生编程一生

上周静儿用一天的时间写了一个日志切面,大家都非常支持配合,内部各个模块都使用起来。

从技术上来说就是一个aspectj,没有什么难点。关键是做好之后让很多模块都一起使用起来,形成了一个规范。规范是一个很神奇的东西。

比如因特网本身就是一套规范而已。所谓的带宽是连电压都规定好了的大家必须遵守的东西。比如神奇的http,也就是一套约定的规范。

那简明日志规范到底有什么意义呢?回到之前静儿写的文章:美团点评智能支付核心交易系统的可用性实践

是的,简明日志规范是系统稳定性的重要保障之一。

这样想,对于一个大型系统,不同的模块通过不同的工程来维护,分而治之。但是一旦出现了问题,每个模块的日志只有做这一块的同学才能看懂,这就杯具了。等定位到问题黄花菜都凉了。

如果大家都有一些链路必需的参数,都是用统一的格式,这样问题就好定位多了。这就是简明日志规范最重要的意义。

    静儿码农一枚,有朋友吐槽静儿的github一年没更新了,主要做管理了吧。基础架构部这边大家都是做技术的,只有技术专家,没有领导。github不更新原因是咱们在公司里写出的代码,或者用公司电脑写出的代码,理论上都属于公司。想开源需要审批的。这点也需要朋友注意了。

    静儿经授权,开源了日志切面的代码,目前已经上传了github:

https://github.com/xiexiaojing/concise-logger

背景

1.我们定位问题是否有足够的信息?

2.我们在观察信息情况的时候是否会被很多不关心的内容所干扰?

3.我们的监控报警是否有可靠的信息来源?

简明日志,代码无侵入,截获所有与其他组件交互日志。

原理

写了一个日志切面,默认在目录的service包、api包、queue包的所有public方法前后打印info级别日志。dao包打印debug级别日志。也支持灵活用注解方式打印日志。日志等级可以在统一配置中心上进行配置。

方法

1.pom.xml配置

<dependency>

<groupId>com.brmayi</groupId>

<artifactId>concise-logger</artifactId>

<version>1.0.0-SNAPSHOT</version>

</dependency>

2.spring的配置

<bean id="logAspect" class="com.brmayi.aspect.LogPrintAspect">

<aop:config>

<aop:aspect id="aspectAOP" ref="logAspect" />

</aop:config>

    日志想要便于查看,目前都需要统一的日志中心。日志中心目前大公司都是自己实现。但是大家想要自己弄,静儿原同事阳哥给大家提供了一个福利。阳哥之前就职于阿里,后回到乐视期间我们同事一年,一起做项目,跟阳哥学了很多东西。他目前做的开源日志中心已经在乐视内部线上使用,稳定性有保证。

    github地址:https://github.com/guoyang1982/woodpecker-client。如果大家有什么不明白的。其中起来,我也可以请他给大家讲解一下。

一个技术的成功往往是一种营销的成功。比如docker、k8s。k8s火了之后,docker一看自己的地位将不保,就说:

所以docker是一个标准的k8s的CRI实现。这实为明智之举。也是我辈在工作和生活中都可以借鉴的一个合作共赢的道理。

关于作者

静儿,20岁时毕业于东北大学计算机系。在毕业后的第一家公司由于出众的语言天赋,在1年的时间里从零开始学日语并以超高分通过了国际日语一级考试,担当两年日语翻译的工作。后就职于人人网,转型做互联网开发。中国科学院心理学研究生。有近百个技术发明专利,创业公司合伙人。有日本东京,美国硅谷技术支持经验。目前任美团点评技术专家(欢迎关注静儿的个人技术公众号:编程一生),心法文章可参考我的《自动化管理之新人培养》

技术交流可关注我的github:https://github.com/xiexiaojing

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-08-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 原理
  • 方法
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档