美团点评Logan日志系统Android集成与使用指南

美团点评Logan日志系统Android集成与使用指南

Logan Logan is a lightweight case logging system based on mobile platform. Logan 项目地址: https://gitcode.com/gh_mirrors/log/Logan

前言

Logan是美团点评开源的一款高性能客户端日志系统,专为解决移动端日志收集、存储和上传等痛点问题而设计。本文将详细介绍如何在Android项目中集成和使用Logan日志系统。

环境准备

在开始集成前,请确保开发环境满足以下要求:

  1. NDK版本:必须使用NDK版本16.1.4479499或更低版本
  2. Android Studio:建议使用最新稳定版
  3. 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);

参数说明:

  1. 日志内容(String类型)
  2. 日志类型(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) {
        // 处理上传结果
    }
});

方式二:自定义上传实现

  1. 实现SendLogRunnable:
public class CustomSendLogRunnable extends SendLogRunnable {
    @Override
    public void sendLog(File logFile) {
        // 实现你的上传逻辑
        // 必须调用finish()
        finish();
        
        // 可选:删除临时文件
        if (logFile.getName().contains(".copy")) {
            logFile.delete();
        }
    }
}
  1. 触发上传:
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" />

最佳实践

  1. 日志类型规划:建议为不同业务模块分配不同的日志类型值,便于后续分析
  2. 加密配置:务必修改默认的加密密钥和初始向量,确保日志安全
  3. 上传策略:建议在WiFi环境下触发日志上传,节省用户流量
  4. 异常处理:在上传回调中妥善处理各种网络异常情况
  5. 日志清理:定期清理过期日志文件,避免占用过多存储空间

常见问题

  1. NDK版本问题:如果编译失败,请检查NDK版本是否符合要求
  2. 初始化时机:确保在使用Logan前完成初始化
  3. 文件权限:如果无法写入日志,检查存储权限是否已获取
  4. 上传失败:检查网络连接和服务器状态,确保上传接口可用

通过本文的介绍,相信您已经掌握了Logan日志系统在Android平台上的基本使用方法。合理使用Logan可以帮助开发者更高效地收集和分析客户端日志,快速定位和解决问题。

Logan Logan is a lightweight case logging system based on mobile platform. Logan 项目地址: https://gitcode.com/gh_mirrors/log/Logan

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朱焰菲Wesley

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值