API 文档:日志记录功能
元数据
- 需求编号:002-06
- 需求名称:日志记录
- 版本号:v1.0.0
- 创建时间:2026-02-05
- 创建人:AI Assistant
API 概述
日志记录 API 提供 Salesforce Apex 日志的查询、调试头部管理和日志分类管理功能。该 API 为测试执行、代码覆盖率、Flow 覆盖率等功能提供日志追踪支持,便于问题排查和性能分析。
基础信息
- 基础路径:
/apex
- 权限前缀:
apex:apexlog
- 数据格式:JSON
- 字符编码:UTF-8
核心功能
- 日志查询:支持分页查询 Apex 日志记录,可按应用名称、位置、操作、状态、时间范围筛选
- 日志详情:根据 ID 查询单个日志记录的详细信息
- 调试头部管理:支持设置和清除调试头部信息
- 日志分类管理:支持日志分类的创建、查询、更新、删除操作
接口列表
1. 查询日志列表
- 功能描述:分页查询 Apex 日志记录列表,支持多种筛选条件
- 请求方式:GET
- 请求路径:
/apex/apexlog/list
- 权限要求:
apex:apexlog:list
请求参数
| 参数名 |
类型 |
必填 |
说明 |
| pageNum |
Integer |
否 |
当前页码,默认 1 |
| pageSize |
Integer |
否 |
每页记录数,默认 10 |
| application |
String |
否 |
应用程序名称,支持模糊查询 |
| location |
String |
否 |
位置信息,支持模糊查询 |
| operation |
String |
否 |
操作类型,支持模糊查询 |
| status |
String |
否 |
日志状态 |
| startTime |
String |
否 |
开始时间(格式:yyyy-MM-dd HH:mm:ss) |
| endTime |
String |
否 |
结束时间(格式:yyyy-MM-dd HH:mm:ss) |
响应参数
| 参数名 |
类型 |
说明 |
| code |
Integer |
状态码(200 成功,其他失败) |
| msg |
String |
提示信息 |
| data |
Object |
响应数据 |
| data.total |
Long |
总记录数 |
| data.rows |
Array |
日志记录列表 |
| data.rows[].id |
Long |
日志 ID |
| data.rows[].application |
String |
应用程序名称 |
| data.rows[].location |
String |
位置信息 |
| data.rows[].operation |
String |
操作类型 |
| data.rows[].status |
String |
日志状态 |
| data.rows[].logLength |
Integer |
日志长度 |
| data.rows[].duration |
Long |
持续时间(毫秒) |
| data.rows[].startTime |
String |
开始时间 |
| data.rows[].createTime |
String |
创建时间 |
成功示例
{
"code": 200,
"msg": "操作成功",
"data": {
"total": 100,
"rows": [
{
"id": 1,
"application": "Apex",
"location": "SystemLog",
"operation": "CodeUnit",
"status": "Success",
"logLength": 2048,
"duration": 150,
"startTime": "2026-02-05 10:30:00",
"createTime": "2026-02-05 10:30:05"
}
]
}
}
失败示例
{
"code": 500,
"msg": "查询日志列表失败"
}
2. 获取日志详情
- 功能描述:根据 ID 查询单个日志记录的详细信息
- 请求方式:GET
- 请求路径:
/apex/apexlog/{id}
- 权限要求:
apex:apexlog:query
请求参数
| 参数名 |
类型 |
必填 |
说明 |
| id |
Long |
是 |
日志 ID(路径参数) |
响应参数
| 参数名 |
类型 |
说明 |
| code |
Integer |
状态码(200 成功,其他失败) |
| msg |
String |
提示信息 |
| data |
Object |
日志详情 |
| data.id |
Long |
日志 ID |
| data.application |
String |
应用程序名称 |
| data.location |
String |
位置信息 |
| data.operation |
String |
操作类型 |
| data.status |
String |
日志状态 |
| data.logLength |
Integer |
日志长度 |
| data.logContent |
String |
日志内容 |
| data.duration |
Long |
持续时间(毫秒) |
| data.startTime |
String |
开始时间 |
| data.endTime |
String |
结束时间 |
| data.userId |
String |
用户 ID |
| data.createTime |
String |
创建时间 |
成功示例
{
"code": 200,
"msg": "操作成功",
"data": {
"id": 1,
"application": "Apex",
"location": "SystemLog",
"operation": "CodeUnit",
"status": "Success",
"logLength": 2048,
"logContent": "EXECUTION_STARTED...",
"duration": 150,
"startTime": "2026-02-05 10:30:00",
"endTime": "2026-02-05 10:30:02",
"userId": "005xx000001X9YZAA0",
"createTime": "2026-02-05 10:30:05"
}
}
失败示例
{
"code": 500,
"msg": "日志不存在"
}
3. 设置调试头部
- 功能描述:设置调试头部信息,包括日志分类和日志类型
- 请求方式:POST
- 请求路径:
/apex/apexlog/debugHeader
- 权限要求:
apex:apexlog:debug
请求参数
| 参数名 |
类型 |
必填 |
说明 |
| logCategories |
Array |
是 |
日志分类数组 |
| logCategories[].category |
String |
是 |
日志分类(DB、APEX_CODE、VALIDATION、WORKFLOW、CALLOUT、SYSTEM) |
| logCategories[].level |
String |
是 |
日志级别(None、Fine、Finer、Finest、Debug、Info、Warn、Error) |
| logType |
String |
是 |
日志类型(ApexCode、ApexProfiling、Callout、Database、System) |
请求示例
{
"logCategories": [
{
"category": "DB",
"level": "FINE"
},
{
"category": "APEX_CODE",
"level": "DEBUG"
},
{
"category": "VALIDATION",
"level": "INFO"
}
],
"logType": "ApexCode"
}
响应参数
| 参数名 |
类型 |
说明 |
| code |
Integer |
状态码(200 成功,其他失败) |
| msg |
String |
提示信息 |
| data |
Object |
响应数据(null) |
成功示例
{
"code": 200,
"msg": "调试头部设置成功",
"data": null
}
失败示例
{
"code": 500,
"msg": "调试头部设置失败: 无效的日志分类"
}
4. 清除调试头部
- 功能描述:清除已设置的调试头部信息
- 请求方式:DELETE
- 请求路径:
/apex/apexlog/debugHeader
- 权限要求:
apex:apexlog:debug
请求参数
无
响应参数
| 参数名 |
类型 |
说明 |
| code |
Integer |
状态码(200 成功,其他失败) |
| msg |
String |
提示信息 |
| data |
Object |
响应数据(null) |
成功示例
{
"code": 200,
"msg": "调试头部清除成功",
"data": null
}
失败示例
{
"code": 500,
"msg": "调试头部清除失败"
}
5. 查询日志分类列表
- 功能描述:分页查询日志分类列表,支持按分类名称、级别筛选
- 请求方式:GET
- 请求路径:
/apex/apexlogcategory/list
- 权限要求:
apex:apexlogcategory:list
请求参数
| 参数名 |
类型 |
必填 |
说明 |
| pageNum |
Integer |
否 |
当前页码,默认 1 |
| pageSize |
Integer |
否 |
每页记录数,默认 10 |
| categoryName |
String |
否 |
分类名称,支持模糊查询 |
| categoryLevel |
String |
否 |
日志级别 |
| enabled |
Boolean |
否 |
是否启用 |
响应参数
| 参数名 |
类型 |
说明 |
| code |
Integer |
状态码(200 成功,其他失败) |
| msg |
String |
提示信息 |
| data |
Object |
响应数据 |
| data.total |
Long |
总记录数 |
| data.rows |
Array |
日志分类列表 |
| data.rows[].id |
Long |
分类 ID |
| data.rows[].categoryName |
String |
分类名称 |
| data.rows[].categoryLevel |
String |
日志级别 |
| data.rows[].description |
String |
描述 |
| data.rows[].enabled |
Boolean |
是否启用 |
| data.rows[].createTime |
String |
创建时间 |
成功示例
{
"code": 200,
"msg": "操作成功",
"data": {
"total": 10,
"rows": [
{
"id": 1,
"categoryName": "数据库操作",
"categoryLevel": "FINE",
"description": "记录数据库操作日志",
"enabled": true,
"createTime": "2026-02-05 10:00:00"
}
]
}
}
6. 获取日志分类详情
- 功能描述:根据 ID 查询单个日志分类的详细信息
- 请求方式:GET
- 请求路径:
/apex/apexlogcategory/{id}
- 权限要求:
apex:apexlogcategory:query
请求参数
| 参数名 |
类型 |
必填 |
说明 |
| id |
Long |
是 |
分类 ID(路径参数) |
响应参数
| 参数名 |
类型 |
说明 |
| code |
Integer |
状态码(200 成功,其他失败) |
| msg |
String |
提示信息 |
| data |
Object |
分类详情 |
| data.id |
Long |
分类 ID |
| data.categoryName |
String |
分类名称 |
| data.categoryLevel |
String |
日志级别 |
| data.description |
String |
描述 |
| data.enabled |
Boolean |
是否启用 |
| data.createTime |
String |
创建时间 |
| data.updateTime |
String |
更新时间 |
成功示例
{
"code": 200,
"msg": "操作成功",
"data": {
"id": 1,
"categoryName": "数据库操作",
"categoryLevel": "FINE",
"description": "记录数据库操作日志",
"enabled": true,
"createTime": "2026-02-05 10:00:00",
"updateTime": "2026-02-05 10:00:00"
}
}
7. 创建日志分类
- 功能描述:创建新的日志分类配置
- 请求方式:POST
- 请求路径:
/apex/apexlogcategory
- 权限要求:
apex:apexlogcategory:add
请求参数
| 参数名 |
类型 |
必填 |
说明 |
| categoryName |
String |
是 |
分类名称,长度 1-100 字符 |
| categoryLevel |
String |
是 |
日志级别(None、Fine、Finer、Finest、Debug、Info、Warn、Error) |
| description |
String |
否 |
描述,长度 0-500 字符 |
| enabled |
Boolean |
否 |
是否启用,默认 true |
请求示例
{
"categoryName": "数据库操作",
"categoryLevel": "FINE",
"description": "记录数据库操作日志",
"enabled": true
}
响应参数
| 参数名 |
类型 |
说明 |
| code |
Integer |
状态码(200 成功,其他失败) |
| msg |
String |
提示信息 |
| data |
Object |
响应数据(null) |
成功示例
{
"code": 200,
"msg": "创建成功",
"data": null
}
失败示例
{
"code": 500,
"msg": "创建失败: 分类名称已存在"
}
8. 更新日志分类
- 功能描述:更新现有日志分类配置
- 请求方式:PUT
- 请求路径:
/apex/apexlogcategory
- 权限要求:
apex:apexlogcategory:edit
请求参数
| 参数名 |
类型 |
必填 |
说明 |
| id |
Long |
是 |
分类 ID |
| categoryName |
String |
是 |
分类名称,长度 1-100 字符 |
| categoryLevel |
String |
是 |
日志级别 |
| description |
String |
否 |
描述,长度 0-500 字符 |
| enabled |
Boolean |
否 |
是否启用 |
请求示例
{
"id": 1,
"categoryName": "数据库操作",
"categoryLevel": "DEBUG",
"description": "记录数据库操作日志(更新)",
"enabled": true
}
响应参数
| 参数名 |
类型 |
说明 |
| code |
Integer |
状态码(200 成功,其他失败) |
| msg |
String |
提示信息 |
| data |
Object |
响应数据(null) |
成功示例
{
"code": 200,
"msg": "更新成功",
"data": null
}
9. 删除日志分类
- 功能描述:删除日志分类配置(支持批量删除)
- 请求方式:DELETE
- 请求路径:
/apex/apexlogcategory/{ids}
- 权限要求:
apex:apexlogcategory:remove
请求参数
| 参数名 |
类型 |
必填 |
说明 |
| ids |
String |
是 |
分类 ID 列表,多个 ID 用逗号分隔(路径参数) |
响应参数
| 参数名 |
类型 |
说明 |
| code |
Integer |
状态码(200 成功,其他失败) |
| msg |
String |
提示信息 |
| data |
Object |
响应数据(null) |
成功示例
{
"code": 200,
"msg": "删除成功",
"data": null
}
失败示例
{
"code": 500,
"msg": "删除失败: 分类不存在"
}
错误码
日志记录错误码
| 错误码 |
错误名称 |
说明 |
HTTP 状态码 |
| APEX_LOG_001 |
LOG_NOT_FOUND |
日志不存在 |
404 |
| APEX_LOG_002 |
LOG_QUERY_FAILED |
日志查询失败 |
500 |
| APEX_LOG_003 |
DEBUG_HEADER_SET_FAILED |
调试头部设置失败 |
500 |
| APEX_LOG_004 |
DEBUG_HEADER_CLEAR_FAILED |
调试头部清除失败 |
500 |
| APEX_LOG_005 |
INVALID_LOG_CATEGORY |
无效的日志分类 |
400 |
| APEX_LOG_006 |
INVALID_LOG_LEVEL |
无效的日志级别 |
400 |
| APEX_LOG_007 |
INVALID_LOG_TYPE |
无效的日志类型 |
400 |
日志分类错误码
| 错误码 |
错误名称 |
说明 |
HTTP 状态码 |
| APEX_LOG_CATEGORY_001 |
CATEGORY_NOT_FOUND |
日志分类不存在 |
404 |
| APEX_LOG_CATEGORY_002 |
CATEGORY_CREATE_FAILED |
日志分类创建失败 |
500 |
| APEX_LOG_CATEGORY_003 |
CATEGORY_UPDATE_FAILED |
日志分类更新失败 |
500 |
| APEX_LOG_CATEGORY_004 |
CATEGORY_DELETE_FAILED |
日志分类删除失败 |
500 |
| APEX_LOG_CATEGORY_005 |
CATEGORY_NAME_EXISTS |
分类名称已存在 |
400 |
通用错误码
| 错误码 |
错误名称 |
说明 |
HTTP 状态码 |
| 400 |
BAD_REQUEST |
请求参数错误 |
400 |
| 401 |
UNAUTHORIZED |
未授权 |
401 |
| 403 |
FORBIDDEN |
禁止访问 |
403 |
| 404 |
NOT_FOUND |
资源不存在 |
404 |
| 500 |
INTERNAL_ERROR |
服务器内部错误 |
500 |
枚举值定义
日志分类(LogCategory)
| 值 |
说明 |
| DB |
数据库操作 |
| APEX_CODE |
Apex 代码 |
| VALIDATION |
验证规则 |
| WORKFLOW |
工作流 |
| CALLOUT |
外部调用 |
| SYSTEM |
系统操作 |
日志级别(LogCategoryLevel)
| 值 |
说明 |
| None |
无 |
| Fine |
细粒度 |
| Finer |
更细粒度 |
| Finest |
最细粒度 |
| Debug |
调试 |
| Info |
信息 |
| Warn |
警告 |
| Error |
错误 |
日志类型(LogType)
| 值 |
说明 |
| ApexCode |
Apex 代码日志 |
| ApexProfiling |
Apex 性能分析日志 |
| Callout |
外部调用日志 |
| Database |
数据库操作日志 |
| System |
系统日志 |
日志状态(LogStatus)
| 值 |
说明 |
| Success |
成功 |
| Failed |
失败 |
| Pending |
进行中 |
相关文档
版本历史
| 版本号 |
日期 |
变更内容 |
作者 |
| v1.0.0 |
2026-02-05 |
初始版本,实现日志记录功能的所有 API 接口 |
AI Assistant |