56 行
1.6 KiB
Markdown
56 行
1.6 KiB
Markdown
|
|
# sdk-log
|
|||
|
|
|
|||
|
|
XuqmGroup Android SDK 日志模块。提供日志采集、Crash 捕获、漏斗分析能力。
|
|||
|
|
|
|||
|
|
## 依赖
|
|||
|
|
|
|||
|
|
```kotlin
|
|||
|
|
implementation("com.xuqm:sdk-log:VERSION")
|
|||
|
|
implementation("com.xuqm:sdk-core:VERSION") // 必须
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 快速开始
|
|||
|
|
|
|||
|
|
```kotlin
|
|||
|
|
// 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
|
|||
|
|
|
|||
|
|
```kotlin
|
|||
|
|
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 传入。
|