背景:闸机检票项目经常会受到项目上反馈功能异常,排查问题需要提取设备中保存的日志,但是获取闸机设备中保存的日志基本上都是需要人工获取,需要集成部同事或者景区工作人员,非常的不方便,因此在前段时间,研发部内部开始了日志上传功能的开发。
下面直接介绍如何快速给项目中接入日志保存及导出模块功能,以及如何调用相关的方法
demo示意图,文末附源码
demo中有两个按钮,分别用于实现单日和多日的日志压缩功能
说明:
//日志保存路径
public static final String LOG_DIR = "/ExportLogDemo/logs/";
//日志拷贝路径
public static final String COPY_DIR = "/ExportLogDemo/copy/";
//日志压缩路径
public static final String ZIP_DIR = "/ExportLogDemo/upload/";
代码中定义了三个路径:
日志保存路径:即为app在设备中保存的文件路径,这里存放着app生成的所有的日志文件;
日志拷贝路径:后台接口有起止时间参数,用于获取起止时间内的日志文件,拷贝路径即为从日志保存路径中筛选所有的符合条件的日志文件的集合。即,日志拷贝路径下,存放着本次请求中需要获取的所有日志文件;
日志压缩路径:简而言之,该路径存放着日志拷贝路径的压缩文件夹,也是最终上传的路径;
注:日志保存路径下的文件,如果不人为删除,将会一直保存下去,而后两个路径均会随着每一次的请求而清空,即为处理请求而存在的临时文件,只会为空,或者保存满足上一次请求的文件
实际操作:(当前操作日期为2023年3月31日)
点击”压缩当天日志文件“,流程如下
先清空本地拷贝文件夹和压缩文件夹,并完成日志拷贝,并对拷贝文件夹进行压缩
点击”压缩最近三天日志文件”,流程如下
压缩多个日志文件,因为未必每一天都有日志输出,所以这里会先循环判断是否文件存在,再对满足日期条件且存在的日志进行拷贝,以及压缩
说明:demo已兼容Android13,并且根据设备的存储情况将日志文件保存到sd卡或者app内部路径