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)

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