在Android应用开发过程中,经常会用到日志打印功能,如果使用Android系统的android.util.Log来打印日志,那么不能够做到将日志内容持久化存储下来,这样就不方便开发人员追溯问题了~
本文给大家分享下Android开发下的日志框架xLog的使用,利用它能实现将日志持久化到磁盘中,存储为文件,类似于Java Web开发中使用到的logback框架;将采集到的日志文件发送给开发人员,便于排查问题~,很适合将xLog集成到测试版的应用中来收集问题
使用到的软件环境- Android模拟器 Pixel 5 Android8.0系统
- android studio 2020.3.1
- jdk 1.8
参考文档:http://github.com/elvishew/xLog/blob/master/README_ZH.md
使用方式1.修改app下的build.gradle,添加xLog日志库的依赖
2.因为要将日志内容写入磁盘,需要编辑应用清单文件AndroidManifest.xml添加文件相关权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
3.做好配置后,就可以在工程中使用了,先是初始化xLog的相关打印配置,建议放在Application的onCreate生命周期中初始化一次就可以了,我这里为了演示方便,就直接在MainActivity的onCreate中初始化了
初始化的代码中可以配置日志打印的生效级别,线程信息,堆栈深度,打印格式,写入文件路径等
4.接着就可以在代码中使用xLog相关日志打印方法来打印日志了,打印的日志便会存储到你设定的日志路径中,日志打印方法中支持使用%s来插值,打印出的内容会根据传入的参数来格式化输出~,还支持以美观的格式打印出map类型、json类型数据结构
编写完打印的测试代码,可以运行到模拟器中来观察下运行效果~
允许文件权限
点击日志打印的按钮来触发日志打印,观察控制台的日志输出,首字母展示出了日志打印的级别
map、json类型的日志打印效果
再来看下日志文件是否已经被写入磁盘中,根据日志路径,可以在模拟器的文件管理应用中找到对应位置
已经可以看到日志内容被写入文件中了~
到此,xLog日志框架的使用已经演示完成了,需要注意的是,在生产版本的app中,开启日志的写入磁盘功能多少会有一些性能损耗,对于性能差的Android机器运行应用来看会降低一些用户体验,如果一定要写日志,也应该设置一个更高的日志级别才合适~
完整测试工程参考:http://github.com/netbuffer/android-technology-test/tree/master/xLogtest
,