Flutter 日志与崩溃采集 SDK

专为 Flutter App 设计的轻量级日志、崩溃/异常上报与用户行为埋点 SDK, 配套自建的数据采集服务与可视化管理后台。

⬇ 下载 SDK 登录管理后台 →

核心能力

一次接入,覆盖崩溃追踪与用户行为分析两大场景

🐛 崩溃/异常采集

自动捕获 Flutter 未捕获异常,堆栈自动分组聚合,支持标记处理状态。

📊 用户行为埋点

页面访问、自定义事件上报,按版本/平台/页面多维度统计分析。

📦 离线队列

本地持久化队列,断网/崩溃场景下数据不丢失,网络恢复后自动补发。

🔒 安全传输

HMAC-SHA256 请求签名 + 时间戳防重放,数据全程 HTTPS 加密传输。

🛡️ 敏感信息脱敏

上传前自动识别并脱敏日志内容中的邮箱、手机号、身份证号、银行卡号(默认开启),降低隐私合规风险。

快速接入

3 步完成集成,详细 API 文档见 SDK 包内 README

1

下载并添加依赖

下载 SDK 源码包解压到你的项目旁边,在 pubspec.yaml 中添加本地依赖:

dependencies:
  log_sdk:
    path: ../log_sdk
2

在 main() 中初始化

import 'package:log_sdk/log_sdk.dart';

void main() {
  LogSDK.runGuarded(() async {
    WidgetsFlutterBinding.ensureInitialized();

    await LogSDK.instance.init(const LogConfig(
      appId: 'your-app-id',       // 在管理后台创建App后获取
      appSecret: 'your-app-secret',
      serverUrl: 'https://app-data.tensnuk.com',
      environment: LogEnv.prod,
    ));

    // 建议尽早设置(比如App启动时/用户登录成功后),之后上报的事件都会自动带上
    LogSDK.instance.setUuid('your-business-device-uuid');  // 业务方自己的设备/安装UUID
    LogSDK.instance.setUid('1000123');                     // 业务方内部数字用户ID
    LogSDK.instance.setUserId('user@example.com');         // 用户名/邮箱等可读标识(可选)

    runApp(const MyApp());
  });
}
3

上报日志 / 埋点 / 异常

调用下面的方法只是把数据写入本地队列,SDK 会在后台自动定时(默认15秒)批量上传, 崩溃/致命异常会额外触发一次立即上传;不需要手动处理网络请求

// 日志
LogSDK.instance.i('Network', 'request success');

// 行为埋点
LogSDK.instance.trackEvent('button_click', params: {'btn_id': 'submit'});
LogSDK.instance.trackPage('HomePage');

// 手动上报异常(比如 try/catch 里捕获的业务异常)
try {
  await doSomething();
} catch (e, st) {
  LogSDK.instance.reportException(e, st);
}

// 如果想立刻看到效果(比如联调测试),可以强制触发一次上传:
await LogSDK.instance.flush();