上周静儿用一天的时间写了一个日志切面,你们都很是支持配合,内部各个模块都使用起来。git
从技术上来讲就是一个aspectj,没有什么难点。关键是作好以后让不少模块都一块儿使用起来,造成了一个规范。规范是一个很神奇的东西。github
好比因特网自己就是一套规范而已。所谓的带宽是连电压都规定好了的你们必须遵照的东西。好比神奇的http,也就是一套约定的规范。spring
那简明日志规范到底有什么意义呢?回到以前静儿写的文章:美团点评智能支付核心交易系统的可用性实践。docker
是的,简明日志规范是系统稳定性的重要保障之一。编程
这样想,对于一个大型系统,不一样的模块经过不一样的工程来维护,分而治之。可是一旦出现了问题,每一个模块的日志只有作这一块的同窗才能看懂,这就杯具了。等定位到问题黄花菜都凉了。api
若是你们都有一些链路必需的参数,都是用统一的格式,这样问题就好定位多了。这就是简明日志规范最重要的意义。架构
静儿码农一枚,有朋友吐槽静儿的github一年没更新了,主要作管理了吧。基础架构部这边你们都是作技术的,只有技术专家,没有领导。github不更新缘由是我们在公司里写出的代码,或者用公司电脑写出的代码,理论上都属于公司。想开源须要审批的。这点也须要朋友注意了。翻译
静儿经受权,开源了日志切面的代码,目前已经上传了github:debug
https://github.com/xiexiaojing/concise-logger3d
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
关注静儿公众号,不按期漫画技术推送~