經過前兩篇文章
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)