Agent 7 + Agent 8: - CLAUDE.md 项目上下文 - 各 module README (core/im/push/update/webview/log) - XWebViewStandardHandlers.kt 补全标准 JSBridge handler |
||
|---|---|---|
| .. | ||
| src/main | ||
| build.gradle.kts | ||
| README.md | ||
sdk-log
XuqmGroup Android SDK 日志模块。提供日志采集、Crash 捕获、漏斗分析能力。
依赖
implementation("com.xuqm:sdk-log:VERSION")
implementation("com.xuqm:sdk-core:VERSION") // 必须
快速开始
// Application.onCreate() 中(XuqmSDK.initialize 之后):
XLog.setLogLevel(LogLevel.INFO)
XLog.setEnvironment("production")
XLog.startCrashCapture()
// 业务代码中
XLog.event("page_view", mapOf("page" to "home"))
XLog.captureError(exception)
API
XLog 对象
| API | 说明 |
|---|---|
XLog.setLogLevel(level) |
设置日志级别(DEBUG / INFO / WARN / ERROR) |
XLog.setEnvironment(env) |
设置环境标签 |
XLog.startCrashCapture() |
开启全局 UncaughtExceptionHandler |
XLog.event(name, properties?) |
记录自定义事件 |
XLog.captureError(error, metadata?) |
上报异常 |
XLog.warn(message, metadata?) |
记录警告 |
XLog.info(message, metadata?) |
记录信息 |
XLog.defineFunnel(id, steps) |
定义漏斗 |
LogLevel
enum class LogLevel { DEBUG, INFO, WARN, ERROR, NONE }
工作原理
- LogQueue:事件进入内存队列,按批次异步上传到
logApiUrl - CrashCapture:注册
Thread.UncaughtExceptionHandler,捕获 Native Crash 并写入文件,下次启动时上传 - Fingerprint:为错误生成指纹(基于 message + stack),服务端去重聚合
- FunnelTracker:客户端维护漏斗进度,服务端跨 session 聚合
配置
logApiUrl 和 logEnabled 由 sdk-core 在 init 后从平台配置自动获取,无需 App 传入。