关于日志组件的思考
日志組件到底應(yīng)該具備什么能力?選擇合適的日志實現(xiàn),比如log4j2、logback等。擴展日志格式,定制化自己的日志格式固定日志路徑,保證線上日志路徑統(tǒng)一請求ID、TraceID等信息的打印、傳遞。(傳遞可考慮鏈路工具)定制相關(guān)的API、提供一些友好的API。開放的日志級別調(diào)整mybatis sql日志開關(guān)控制臺日志打印開關(guān)日志保留時長日志分割方式異步開關(guān)、異步隊列長度、超長是否丟棄異常堆棧的深度日志丟棄策略,比如磁盤容量不夠時保留warn和error日志,丟棄info、log、debug級別日志。忽略打印,哪些接口、哪些對象不打印,配置列表日志組件本質(zhì)是什么?
擴展字段、擴展格式、靈活控制日志策略。
我司的一些實現(xiàn)
以上80%的功能
定義filter和spring interceptor通過header獲取前端\網(wǎng)關(guān)傳過來的request-id。然后放入到MDC里。
在Dubbo filter里透傳request-id
在filter里打印notice級別日志(包含入?yún)?、出參、耗時等信息)此日志量比較大,結(jié)合日志組件實現(xiàn)開關(guān)配置,后續(xù)通過配置中心調(diào)整輸出
結(jié)合配置中心實現(xiàn)動態(tài)調(diào)整日志級別
關(guān)于為什么要強制統(tǒng)一
統(tǒng)一格式,方便實現(xiàn)日志收集、分析、提供日志平臺進行搜索。
統(tǒng)一路徑,方便日志收集、方便日志磁盤控制,不會誤將日志打印到系統(tǒng)盤。
?
總結(jié)
- 上一篇: Linux系统中安装nodejs的步骤教
- 下一篇: API网关-apisix源码剖析,初始化