专为 Flutter App 设计的轻量级日志、崩溃/异常上报与用户行为埋点 SDK, 配套自建的数据采集服务与可视化管理后台。
一次接入,覆盖崩溃追踪与用户行为分析两大场景
自动捕获 Flutter 未捕获异常,堆栈自动分组聚合,支持标记处理状态。
页面访问、自定义事件上报,按版本/平台/页面多维度统计分析。
本地持久化队列,断网/崩溃场景下数据不丢失,网络恢复后自动补发。
HMAC-SHA256 请求签名 + 时间戳防重放,数据全程 HTTPS 加密传输。
3 步完成集成,详细 API 文档见 SDK 包内 README
下载 SDK 源码包解压到你的项目旁边,在 pubspec.yaml 中添加本地依赖:
dependencies:
log_sdk:
path: ../log_sdk
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,
));
runApp(const MyApp());
});
}
调用下面的方法只是把数据写入本地队列,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();