首先來聊聊往事吧~~兩年前就職于一家傳統(tǒng)金融軟件公司,為某交易所開發(fā)一套大型交易系統(tǒng),交易標(biāo)的的價(jià)格為流式數(shù)據(jù),采用價(jià)格觸發(fā)成交方式,T+0交易制度(類似炒股,只是炒的不是股票而是其他標(biāo)的物,但可以隨時(shí)開平倉(cāng))。鑒于系統(tǒng)需要記錄大量?jī)r(jià)格數(shù)據(jù)、交易信息及訂單流水,且系統(tǒng)對(duì)性能要求極高(敏感度達(dá)毫秒級(jí)),因此需要避免日志服務(wù)成為系統(tǒng)性能瓶頸。通過對(duì)幾個(gè)通用型日志(如log4j、logback)的性能壓測(cè),以及考慮到它們作為通用型日志相對(duì)比較臃腫,就決定自個(gè)兒寫個(gè)日志工具以支撐系統(tǒng)功能和性能所需。當(dāng)時(shí)的做法只是簡(jiǎn)單的將日志的實(shí)現(xiàn)作為一個(gè) util 類寫在項(xiàng)目中,只有幾百行的代碼量。

系統(tǒng)上線兩個(gè)月后日均成交額200億RMB,最高達(dá)440億RMB,峰值成交4000筆/秒。系統(tǒng)非常龐大,但幾百行的代碼卻完美支撐住了重要的日志服務(wù)!

鑒于其優(yōu)秀的表現(xiàn),就花了一點(diǎn)點(diǎn)時(shí)間把它抽取出來作為一個(gè)獨(dú)立的日志組件,取名叫 FLogger,代碼幾乎沒有改動(dòng),現(xiàn)已托管到GitHub(FLogger),有興趣的童鞋可以clone下來了解并改進(jìn),目前它的實(shí)現(xiàn)是非常簡(jiǎn)(純)單(粹)的。

以上就是 FLogger 的誕生背景。好吧,下面進(jìn)入正題。

特性

雖然 FLogger 只有幾百行的代碼,但是麻雀雖小五臟俱全,它可是擁有非常豐富的特性呢:

  • 雙緩沖隊(duì)列

  • 多種刷盤機(jī)制,支持時(shí)間觸發(fā)、緩存大小觸發(fā)、服務(wù)關(guān)閉強(qiáng)制觸發(fā)等刷盤方式

  • 多種 RollingFile 機(jī)制,支持文件大小觸發(fā)、按天觸發(fā)等 Rolling 方式

  • 多日志級(jí)別,支持 debug、info、warn、error和 fatal 等日志級(jí)別

  • 熱加載,由日志事件觸發(fā)熱加載

  • 超輕量,不依賴任何第三方庫(kù)

  • 性能保證,成功用于日交易額百億級(jí)交易系統(tǒng)

使用

FLogger 已經(jīng)發(fā)布到 maven 公共倉(cāng)庫(kù)(版本更新信息請(qǐng)點(diǎn)此查看),請(qǐng)?zhí)砑右韵乱蕾嚕ɑ蛑苯釉陧?xiàng)目中引用 jar 包):

網(wǎng)友評(píng)論

<style id="uwvna"></style>

  • <dl id="uwvna"></dl>

  • <thead id="uwvna"></thead>

    <u id="uwvna"></u>