Countly 日志

结论先说:
Countly 后台目前不支持:通过 “用户 ID + tag” 直接搜索 Log(recordLog)日志。
但可以通过以下方式实现“间接查询”或“可检索日志结构”。

下面给你最清晰的说明👇


Countly 官方能力总结

能力 支持? 说明
通过 用户 ID 查看事件 / 会话 ✔ 支持 User Profiles 页面可查看该用户的事件,但 不包含 recordLog 日志
通过 用户 ID 查看日志(recordLog) ❌ 不支持 recordLog 不会出现在 User Profiles
tag 搜索日志 ❌ 不支持 Logs 插件没有搜索功能
查看所有日志 ✔ 支持 Utilities → Incoming Data Logs
在日志中包含自定义字段(tag/uid) ✔ 可以 你可以把 tag、uid 放到 JSON 里,日志会出现在 log 表中

⭐ 想做到 “按用户ID + tag 查日志”,推荐方案

要实现这个功能你必须 自己在 recordLog 内容里加入 uid + tag
然后到后台 Incoming Data Logs 按内容搜索。


📌 推荐的日志结构(Android Kotlin)

1
2
3
4
5
6
7
8
val logObj = JSONObject().apply {
put("uid", Countly.sharedInstance().deviceId) // 用户唯一标识
put("tag", "NETWORK")
put("message", "调用登录接口失败")
put("level", "error")
}

Countly.sharedInstance().recordLog(logObj)

Countly 后台会收到类似内容(在 incoming data logs → logs{appId}):

1
2
3
4
5
6
7
8
9
10
{
"logs": [
{
"uid": "user_12345",
"tag": "NETWORK",
"message": "调用登录接口失败",
"level": "error"
}
]
}

🔍 怎么在后台查?(你问的关键)

方式 1:Incoming Data Logs(可搜索内容)

路径:

1
Utilities → Incoming Data Logs

在这里你可以用页面的搜索框:

  • 输入用户 ID(如 user_12345

  • 输入 tag(如 NETWORK

即可找到包含这段内容的日志。

👉 _这是唯一能查到 recordLog 的地方_。


方式 2:直接查数据库(self-host 使用 MongoDB)

表名:

1
log_<appId>

你可以使用 Mongo 查询:

1
2
3
4
5
6
7
8
db.log_XXXXXX.find({
logs: {
$elemMatch: {
uid: "user_12345",
tag: "NETWORK"
}
}
})

即可查出所有匹配记录。


🎯 结论总结(最实用)

  • Countly 不支持按用户 ID 或 tag 直接查 recordLog。

  • 必须把 uid 和 tag 写进日志内容中

  • 然后到:

    • Incoming Data Logs 搜索内容(Cloud 和 Self-host 均可)

    • 或用 MongoDB 查询(Self-host)


如果你愿意,我可以帮你写一个:

🔧 Android Kotlin CountlyLogger 工具类

支持:

  • 自动加入用户 ID

  • 自动加入 tag

  • 自动加入等级(INFO、ERROR)

  • 自动加入时间

  • 可开关本地 Logcat 输出

需要吗?


Countly 日志
http://peiniwan.github.io/2025/12/7db93f300422.html
作者
六月的雨
发布于
2025年12月16日
许可协议