docs: sdk-log → sdk-bugcollect 重命名
Co-Authored-By: Claude <noreply@anthropic.com>
这个提交包含在:
父节点
39f5c4ecf6
当前提交
89d11f73b8
26
CLAUDE.md
26
CLAUDE.md
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## 项目定位
|
## 项目定位
|
||||||
|
|
||||||
XuqmGroup Android SDK,Gradle multi-module 项目。为集成宿主 App(如 YwxMobileApp)提供:初始化、用户认证、OTA 更新、WebView、IM、推送、证书、日志追踪。
|
XuqmGroup Android SDK,Gradle multi-module 项目。为集成宿主 App(如 YwxMobileApp)提供:初始化、用户认证、OTA 更新、WebView、IM、推送、证书、Bug 采集。
|
||||||
|
|
||||||
- Git 远端:`https://xuqinmin.com/xuqmGroup/XuqmGroup-AndroidSDK.git`
|
- Git 远端:`https://xuqinmin.com/xuqmGroup/XuqmGroup-AndroidSDK.git`
|
||||||
- Nexus Maven 发布:`https://nexus.xuqinmin.com/repository/android-hosted/`
|
- Nexus Maven 发布:`https://nexus.xuqinmin.com/repository/android-hosted/`
|
||||||
@ -16,7 +16,7 @@ XuqmGroup Android SDK,Gradle multi-module 项目。为集成宿主 App(如 Y
|
|||||||
| sdk-core | `sdk-core` | 活跃开发 |
|
| sdk-core | `sdk-core` | 活跃开发 |
|
||||||
| sdk-update | `sdk-update` | 活跃开发 |
|
| sdk-update | `sdk-update` | 活跃开发 |
|
||||||
| sdk-webview | `sdk-webview` | 活跃开发 |
|
| sdk-webview | `sdk-webview` | 活跃开发 |
|
||||||
| sdk-log | `sdk-log`(新) | 新建中 |
|
| sdk-bugcollect | `sdk-bugcollect`(新) | 新建中 |
|
||||||
| sdk-push | `sdk-push` | 代码冻结(仅文档) |
|
| sdk-push | `sdk-push` | 代码冻结(仅文档) |
|
||||||
| sdk-im | `sdk-im` | 代码冻结(仅文档) |
|
| sdk-im | `sdk-im` | 代码冻结(仅文档) |
|
||||||
| sdk-license | `sdk-license` | 代码冻结(仅文档) |
|
| sdk-license | `sdk-license` | 代码冻结(仅文档) |
|
||||||
@ -56,30 +56,30 @@ XuqmSDK.setUserInfo(null) // 登出,触发所有子 SDK 登出
|
|||||||
|
|
||||||
### 平台配置读取(init 完成后)
|
### 平台配置读取(init 完成后)
|
||||||
```kotlin
|
```kotlin
|
||||||
XuqmSDK.platformConfig?.logApiUrl // 日志服务地址
|
XuqmSDK.platformConfig?.bugCollectApiUrl // Bug 采集服务地址
|
||||||
XuqmSDK.logEnabled // 是否开启日志
|
XuqmSDK.bugCollectEnabled // 是否开启 Bug 采集
|
||||||
XuqmSDK.appKey // 当前 appKey
|
XuqmSDK.appKey // 当前 appKey
|
||||||
```
|
```
|
||||||
|
|
||||||
## 日志 SDK(sdk-log)
|
## Bug 采集 SDK(sdk-bugcollect)
|
||||||
|
|
||||||
```kotlin
|
```kotlin
|
||||||
// Application.onCreate() 中(XuqmSDK.initialize 之后):
|
// Application.onCreate() 中(XuqmSDK.initialize 之后):
|
||||||
XLog.setLogLevel(LogLevel.INFO)
|
BugCollect.setLogLevel(LogLevel.INFO)
|
||||||
XLog.setEnvironment("production")
|
BugCollect.setEnvironment("production")
|
||||||
XLog.startCrashCapture() // 开启 UncaughtExceptionHandler
|
BugCollect.startCrashCapture() // 开启 UncaughtExceptionHandler
|
||||||
|
|
||||||
// 埋点
|
// 埋点
|
||||||
XLog.event("page_view", mapOf("page" to "home"))
|
BugCollect.event("page_view", mapOf("page" to "home"))
|
||||||
|
|
||||||
// 错误上报
|
// 错误上报
|
||||||
XLog.captureError(exception)
|
BugCollect.captureError(exception)
|
||||||
|
|
||||||
// 漏斗定义
|
// 漏斗定义
|
||||||
XLog.defineFunnel("checkout", listOf("cart_view", "checkout_start", "payment_done"))
|
BugCollect.defineFunnel("checkout", listOf("cart_view", "checkout_start", "payment_done"))
|
||||||
```
|
```
|
||||||
|
|
||||||
`logApiUrl` 由 SDK 在 init 后从平台配置自动获取,无需 App 传入。
|
`bugCollectApiUrl` 由 SDK 在 init 后从平台配置自动获取,无需 App 传入。
|
||||||
|
|
||||||
## 向下兼容约束
|
## 向下兼容约束
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ YwxMobileApp:`/Users/xuqinmin/Projects/TrustProjects/Pad/YwxMobileApp`
|
|||||||
## 常用命令
|
## 常用命令
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./gradlew :sdk-log:assembleDebug
|
./gradlew :sdk-bugcollect:assembleDebug
|
||||||
./gradlew :sdk-core:assembleDebug
|
./gradlew :sdk-core:assembleDebug
|
||||||
./gradlew :sample-app:installDebug
|
./gradlew :sample-app:installDebug
|
||||||
./gradlew publish # 发布所有模块到 Nexus
|
./gradlew publish # 发布所有模块到 Nexus
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
# sdk-log
|
# sdk-bugcollect
|
||||||
|
|
||||||
XuqmGroup Android SDK 日志模块。提供日志采集、Crash 捕获、漏斗分析能力。
|
XuqmGroup Android SDK Bug 采集模块。提供错误采集、Crash 捕获、漏斗分析能力。
|
||||||
|
|
||||||
## 依赖
|
## 依赖
|
||||||
|
|
||||||
```kotlin
|
```kotlin
|
||||||
implementation("com.xuqm:sdk-log:VERSION")
|
implementation("com.xuqm:sdk-bugcollect:VERSION")
|
||||||
implementation("com.xuqm:sdk-core:VERSION") // 必须
|
implementation("com.xuqm:sdk-core:VERSION") // 必须
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -13,29 +13,29 @@ implementation("com.xuqm:sdk-core:VERSION") // 必须
|
|||||||
|
|
||||||
```kotlin
|
```kotlin
|
||||||
// Application.onCreate() 中(XuqmSDK.initialize 之后):
|
// Application.onCreate() 中(XuqmSDK.initialize 之后):
|
||||||
XLog.setLogLevel(LogLevel.INFO)
|
BugCollect.setLogLevel(LogLevel.INFO)
|
||||||
XLog.setEnvironment("production")
|
BugCollect.setEnvironment("production")
|
||||||
XLog.startCrashCapture()
|
BugCollect.startCrashCapture()
|
||||||
|
|
||||||
// 业务代码中
|
// 业务代码中
|
||||||
XLog.event("page_view", mapOf("page" to "home"))
|
BugCollect.event("page_view", mapOf("page" to "home"))
|
||||||
XLog.captureError(exception)
|
BugCollect.captureError(exception)
|
||||||
```
|
```
|
||||||
|
|
||||||
## API
|
## API
|
||||||
|
|
||||||
### XLog 对象
|
### BugCollect 对象
|
||||||
|
|
||||||
| API | 说明 |
|
| API | 说明 |
|
||||||
|-----|------|
|
|-----|------|
|
||||||
| `XLog.setLogLevel(level)` | 设置日志级别(`DEBUG` / `INFO` / `WARN` / `ERROR`) |
|
| `BugCollect.setLogLevel(level)` | 设置日志级别(`DEBUG` / `INFO` / `WARN` / `ERROR`) |
|
||||||
| `XLog.setEnvironment(env)` | 设置环境标签 |
|
| `BugCollect.setEnvironment(env)` | 设置环境标签 |
|
||||||
| `XLog.startCrashCapture()` | 开启全局 UncaughtExceptionHandler |
|
| `BugCollect.startCrashCapture()` | 开启全局 UncaughtExceptionHandler |
|
||||||
| `XLog.event(name, properties?)` | 记录自定义事件 |
|
| `BugCollect.event(name, properties?)` | 记录自定义事件 |
|
||||||
| `XLog.captureError(error, metadata?)` | 上报异常 |
|
| `BugCollect.captureError(error, metadata?)` | 上报异常 |
|
||||||
| `XLog.warn(message, metadata?)` | 记录警告 |
|
| `BugCollect.warn(message, metadata?)` | 记录警告 |
|
||||||
| `XLog.info(message, metadata?)` | 记录信息 |
|
| `BugCollect.info(message, metadata?)` | 记录信息 |
|
||||||
| `XLog.defineFunnel(id, steps)` | 定义漏斗 |
|
| `BugCollect.defineFunnel(id, steps)` | 定义漏斗 |
|
||||||
|
|
||||||
### LogLevel
|
### LogLevel
|
||||||
|
|
||||||
@ -45,11 +45,11 @@ enum class LogLevel { DEBUG, INFO, WARN, ERROR, NONE }
|
|||||||
|
|
||||||
### 工作原理
|
### 工作原理
|
||||||
|
|
||||||
- **LogQueue**:事件进入内存队列,按批次异步上传到 `logApiUrl`
|
- **LogQueue**:事件进入内存队列,按批次异步上传到 `bugCollectApiUrl`
|
||||||
- **CrashCapture**:注册 `Thread.UncaughtExceptionHandler`,捕获 Native Crash 并写入文件,下次启动时上传
|
- **CrashCapture**:注册 `Thread.UncaughtExceptionHandler`,捕获 Native Crash 并写入文件,下次启动时上传
|
||||||
- **Fingerprint**:为错误生成指纹(基于 message + stack),服务端去重聚合
|
- **Fingerprint**:为错误生成指纹(基于 message + stack),服务端去重聚合
|
||||||
- **FunnelTracker**:客户端维护漏斗进度,服务端跨 session 聚合
|
- **FunnelTracker**:客户端维护漏斗进度,服务端跨 session 聚合
|
||||||
|
|
||||||
### 配置
|
### 配置
|
||||||
|
|
||||||
`logApiUrl` 和 `logEnabled` 由 `sdk-core` 在 init 后从平台配置自动获取,无需 App 传入。
|
`bugCollectApiUrl` 和 `bugCollectEnabled` 由 `sdk-core` 在 init 后从平台配置自动获取,无需 App 传入。
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户