美团点评Logan日志系统Android集成与使用指南
前言
Logan是美团点评开源的一款高性能客户端日志系统,专为解决移动端日志收集、存储和上传等痛点问题而设计。本文将详细介绍如何在Android项目中集成和使用Logan日志系统。
环境准备
在开始集成前,请确保开发环境满足以下要求:
- NDK版本:必须使用NDK版本16.1.4479499或更低版本
- Android Studio:建议使用最新稳定版
- Gradle:建议使用较新版本
集成步骤
第一步:添加依赖
在项目的build.gradle文件中添加Logan依赖:
implementation 'com.dianping.android.sdk:logan:1.2.4'
第二步:初始化配置
在使用Logan前,必须进行初始化配置。建议在Application的onCreate方法中完成:
LoganConfig config = new LoganConfig.Builder()
.setCachePath(getApplicationContext().getFilesDir().getAbsolutePath())
.setPath(getApplicationContext().getExternalFilesDir(null).getAbsolutePath()
+ File.separator + "logan_v1")
.setEncryptKey16("0123456789012345".getBytes())
.setEncryptIV16("0123456789012345".getBytes())
.build();
Logan.init(config);
配置参数说明:
setCachePath
:设置日志缓存路径(内部存储)setPath
:设置日志最终存储路径(建议使用外部存储)setEncryptKey16
:设置16位加密密钥setEncryptIV16
:设置16位加密初始向量
基础使用
写入日志
Logan.w("这是一条测试日志", 2);
参数说明:
- 日志内容(String类型)
- 日志类型(int类型),注意:
- 类型值1已被Logan内部使用
- 建议业务方从2开始定义自己的日志类型
立即写入文件
Logan.f(); // 强制将缓存中的日志写入文件
获取日志文件信息
Map<String, Long> fileInfoMap = Logan.getAllFilesInfo();
返回结果说明:
- Key:日志文件日期(格式:yyyy-MM-dd)
- Value:日志文件大小(单位:字节)
日志上传
Logan提供了两种日志上传方式:
方式一:推荐的上传方法(直接上传)
final String uploadUrl = "你的服务器地址";
Logan.s(uploadUrl, loganTodaysDate(), "appId", "userId", "deviceId",
"buildVersion", "appVersion", new SendLogCallback() {
@Override
public void onLogSendCompleted(int statusCode, byte[] data) {
// 处理上传结果
}
});
方式二:自定义上传实现
- 实现SendLogRunnable:
public class CustomSendLogRunnable extends SendLogRunnable {
@Override
public void sendLog(File logFile) {
// 实现你的上传逻辑
// 必须调用finish()
finish();
// 可选:删除临时文件
if (logFile.getName().contains(".copy")) {
logFile.delete();
}
}
}
- 触发上传:
String[] dates = {"2023-01-01"}; // 要上传的日志日期数组
Logan.s(dates, new CustomSendLogRunnable());
权限配置
根据使用场景,需要在AndroidManifest.xml中添加相应权限:
<!-- 上传日志到服务器需要网络权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 读写SD卡日志需要存储权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
最佳实践
- 日志类型规划:建议为不同业务模块分配不同的日志类型值,便于后续分析
- 加密配置:务必修改默认的加密密钥和初始向量,确保日志安全
- 上传策略:建议在WiFi环境下触发日志上传,节省用户流量
- 异常处理:在上传回调中妥善处理各种网络异常情况
- 日志清理:定期清理过期日志文件,避免占用过多存储空间
常见问题
- NDK版本问题:如果编译失败,请检查NDK版本是否符合要求
- 初始化时机:确保在使用Logan前完成初始化
- 文件权限:如果无法写入日志,检查存储权限是否已获取
- 上传失败:检查网络连接和服务器状态,确保上传接口可用
通过本文的介绍,相信您已经掌握了Logan日志系统在Android平台上的基本使用方法。合理使用Logan可以帮助开发者更高效地收集和分析客户端日志,快速定位和解决问题。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考