雲計算髮展至今,企業應用的方方面面都已經在雲上或者準備上雲了。不管是Iaas仍是Paas,應用開發的首選便是上雲,由於雲平臺不只能夠節約開發和部署流程中的時間,並且專業的雲平臺還會極大提高總體服務的穩定性,下降業務運維成本。git
本篇主要介紹下如何利用七牛雲大數據日誌平臺來無縫收集Java應用日誌,方便後續的日誌分析等工做。本質上,任何客戶若是但願接入七牛的大數據日誌平臺,均可以利用各個語言的SDK來完成這個工做,或者利用七牛提供的收集工具如logkit 或者 企業級logkit。github
可是本方案強調的就是 業務代碼無侵入性。多線程
提供 業務代碼無侵入性 接入的方案最基本的緣由就是:框架
因此最好存在一種方案,能夠支持 可插拔 的方式來輸出日誌,這樣Java應用代碼不須要作更改,也就是達到 業務代碼無侵入性 的目標。運維
因爲大多數客戶的應用都是採用Java來開發的,並且因爲Java的生態發展的很是完善,不少客戶都使用成熟的日誌框架如log4j,slf4j,logback等來進行日誌的輸出。而這些框架在設計上面爲咱們無縫輸出日誌到不一樣的目的地提供了方便的接口。工具
因此,基於這些背景,咱們打算幫助客戶實現Java應用日誌的 無縫快速上雲。性能
不少人或許已經猜出了這個方案的核心技術就是開發支持各個日誌框架的自定義Appender。大數據
對,就是這樣。咱們目前優先選擇支持Java最主要是由於Java語言的覆蓋用戶普遍,日誌框架設計優良,方面擴展自定義的Appender。後續咱們也會根據客戶需求繼續支持其餘的語言。雲計算
這個方案除了自定義日誌的Appender來將日誌輸出到雲端外,還內部實現了多線程日誌上傳,日誌緩衝(避免頻繁推送大小很小的日誌行影響業務性能),定時推送等功能,後續還會根據實際狀況繼續支持其餘企業級需求。spa
實際應用起來很是簡單,無需修改一行業務代碼,直接看圖:
從新啓動服務後,日誌會進行上報,能夠在七牛雲後臺查看數據:
另外,爲了讓你們在應用到自身業務以前實際體驗下,咱們還提供了兩個開源軟件的案例:
若是您有興趣瞭解更多實現細節,歡迎 Star項目:https://github.com/qiniu/qiniu-logging-plugin 或者加入QQ羣討論:675938456 。