在项目开发中,遇到一个痛点:项目模块较多,不同日志混合在一起;出现线上问题时,所有日志信息混合在一起,定位困难。
为解决这个问题,有了这个工具。这个工具有以下作用:
- 开发模式debug 为 true 时,打印在控制台,同时打印到文件;
- 发版模式debug 为 fase 时,只打印到文件;
- 方便日志上传 支持日志压缩上传
- 缓存文件 区分模块 支持不同功能模块,日志打印到不同文件中;
第一次看文章的朋友可以关注我,会不定期发布大厂面试题、Android架构技术知识点及解析等内容,还有学习PDF 源码笔记 面试文档 进阶视频分享
平时的学习内容放在了我的GitHub:https://github.com/Meng997998/AndroidJX
一、使用举例
日志输出到控制台
不同模块日志 分别打印到对应文件
对应文件中的日志
压缩后的日志文件路径
二、使用方式
- 初始化
- 打日志
- 文件压缩上传
2.1、初始化
初始化建议放到Application中
/**
* 初始化日志
*/
private void initLog() {
// 这里网络模块、UI模块的Debug模式为true
PalUiLog.init(MainApplication.this, true);
PalNetLog.init(MainApplication.this, true);
}
2.2、打日志
// UI模块日志:打印到控制台;同时打印到文件;
PalUiLog.d(TAG, "---onCreate---");
// 网络模块日志:打印到控制台;同时打印到文件;
PalNetLog.d(TAG, "---onCreate---");
2.3、文件压缩上传
// 耗时操作,建议异步任务调用该方法
private void zipLogFiles() {
// 压缩App内部存储目录下的日志文件
File file = ZipLogFile.zipLogFiles(MainActivity.this);
// 若压缩成功,返回对应的文件
if (file != null) {
Toast.makeText(MainActivity.this, "日志文件生成成功:" file.getAbsolutePath(),
Toast.LENGTH_LONG).show();
}
}