

上周靜兒用一天的時間寫了一個日志切面,大家都非常支持配合,內部各個模塊都使用起來。
從技術上來說就是一個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
關注靜兒公眾號,不定期漫畫技術推送~