Android Mars XLog 自定義存儲格式

經過前兩篇文章
Android 微信高性能日誌存儲庫Xlog的使用
Android Mars XLog的編譯
我們大概瞭解了XLog,但是微信開源的XLog日誌庫,格式是寫死的,如下圖所示
在這裏插入圖片描述
那我們如果需要實現自定義的格式存儲日誌,該怎麼辦呢 ?

通過源碼,我們可以發現,mars\log\src\appender.cc文件中的appender_open方法,會拼接下面這部分信息

^^^^^^^^^^Feb 18 2020^^^10:19:18^^^^^^^^^^[24414,24414][2020-02-18 +0800 10:22:45]
get mmap time: 0
MARS_URL: 
MARS_PATH: 
MARS_REVISION: 
MARS_BUILD_TIME: 2020-02-18 10:19:10
MARS_BUILD_JOB: 
log appender mode:0, use mmap:1
cache dir space info, capacity:113652264960 free:57627987968 available:57074339840
log dir space info, capacity:113652264960 free:57627987968 available:57074339840

來看下源碼,其中snprintf是C語言中拼接格式化字符串的一個函數。
在這裏插入圖片描述
然後,mars\log\src\formater.cc文件的log_formater方法中,會拼接每一行的前綴
在這裏插入圖片描述
所以,我們只要讓代碼不執行這兩個地方,保存的日誌就不會打印這些內容了。
我們來修改下
在這裏插入圖片描述
在這裏插入圖片描述
然後,再進行編譯 (編譯配置詳見Android Mars XLog的編譯)。
可以看到生成了如下的so文件在這裏插入圖片描述
然後把生成的so覆蓋原來項目中的so,運行項目後存儲日誌就如下所示了。
在這裏插入圖片描述
即保存的日誌格式可以完全自定了 !

更偷懶的做法

如果你嫌編譯太麻煩,也可以用我已經編譯好的so文件,覆蓋到你的項目中,即可。
附上重新編譯後的so下載 (對應Xlog版本 v1.2.3)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章