您当前的位置: 首页 > 

蓝不蓝编程

暂无认证

  • 0浏览

    0关注

    706博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

集成微信高性能日志组件xLog

蓝不蓝编程 发布时间:2018-11-20 18:54:11 ,浏览量:0

什么是xLog

2017年12月份,微信官方开源了底层通信库mars。其中xLog是该库中的高性能日志模块,具有如下特性:

  • 高性能高压缩率
  • 不丢失任何一行日志
  • 避免系统卡顿
  • 避免CPU波峰
  • 支持数据加密
集成Xlog步骤

本人基于官方demo做了接口抽象,简化了调用。demo及依赖库在: https://github.com/cxyzy1/mars_xlog_demo.git

  1. 初始化 FileLog.init(context, "")
  2. 写日志 FileLog.d("tag", "write log.") 写日志可用函数列表:
  • v:verbose级别(默认此级别不打印,如果需要打印,则需要调用setLevel,设置level为0)
  • d:debug级别
  • i:info级别
  • w:warning级别
  • e:error级别
  • f:fatal级别
  1. 获取日志文件: 获取日志文件列表:FileLog.retrieveLogFiles() 获取打包到一个zip文件的日志:FileLog.retrieveLogFilesAsZip()
  2. 为保证缓存内容再应用退出时写入了日志文件,建议退出前调用: FileLog.appenderClose()
  3. 日志打印是可以分级的,调用setLevel即可设置,可用level值如下:
  • 0:输出所有日志
  • 1:输出debug日志及以上
  • 2:输出info日志及以上
  • 3:输出warning日志及以上
  • 4:输出error日志及以上
  • 5:输出fatal日志及以上
  • 6:不输出任何日志
  1. 混淆设置 proguard文件中添加-keep class com.tencent.mars.xlog.** { *; }
解码xlog日志文件(分两种情况)
  • 先下载python 2.7(本文档写作使用的2.7.15 x86版本,非x86_64版本) 2.7.15 x86版本下载地址:https://www.python.org/ftp/python/2.7.15/python-2.7.15.msi
  • 把log文件从手机里导出至Mars源码log/crypt/文件夹下,在命令行切换到该目录下。 导出文件命令样例:
adb pull /sdcard/mars/log_copy/FileLog_20181109.xlog "E:\mars\log\crypt"
  • 文件未做加密 执行:python decode_mars_nocrypt_log_file.py
  • 文件做了加密(初始化时pubKey传入了值,值需要和decode_mars_crypt_log_file.py中PUB_KEY值相同) 执行:python decode_mars_crypt_log_file.py 注意对于加密场景,执行上面命令前,需要安装pyelliptic,命令为:pip install pyelliptic==1.5.7。pip命令在C:\Python27\Scripts\目录下。 当前目录下就会生成解码后的FileLog_20181109.xlog.log
xlog和普通日志记录方式测试结果对比
  • 测试设备:华为 P10 Plus
  • 测试方法:每次循环十万次写入同样信息到日志文件,对于普通日志的写入方法采用了如下代码(Kotlin):
fun appendContent(filePath: String, content: String) {
        val f = File(filePath)
        if (!f.exists()) {
            f.createNewFile()
        }
        f.appendText(content, charset)
    }
  • 测试数据对比 在这里插入图片描述

在这里插入图片描述

附录:

如果要手工自己编译xlog的so库,可以参考:https://blog.csdn.net/yinxing2008/article/details/84132359

安卓开发技术分享: https://blog.csdn.net/yinxing2008/article/details/84555061

关注
打赏
1639405877
查看更多评论
立即登录/注册

微信扫码登录

0.0368s