化腐朽為神奇:簡明日志規范



 

上周靜兒用一天的時間寫了一個日志切面,大家都非常支持配合,內部各個模塊都使用起來。

從技術上來說就是一個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

關注靜兒公眾號,不定期漫畫技術推送~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM