
# 查询任务检查失败日志 - ShowTasklog
#### 功能介绍
根据项目ID、任务ID和执行记录ID查询任务的检查日志，没有传执行记录ID参数则查询任务下最近一次执行记录的检查日志。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-codecheck/codecheck_03_0006.html)。
#### 授权信息
账号根用户具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备如下身份策略权限，更多的权限说明请参见[权限和授权项](https://support.huaweicloud.com/api-codecheck/Permission.html)。
| 授权项                    | 访问级别 | 资源类型（\*为必须） | 条件键                     | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| codeartscheck:task:get | Read | task \*     | -                       | -  | -      |
| codeartscheck:task:get | Read | -           | codeartscheck:ProjectId | -  | -      |
   
#### URI
GET /v2/{project_id}/tasks/{task_id}/log-detail
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释：** 项目的32位UUID，项目唯一标识，通过[查询项目列表](https://support.huaweicloud.com/api-projectman/ListProjectsV4.html)接口获取。 **约束限制：** 不涉及。 **取值范围：** 长度为\[1\~32\]的字符。 **默认取值：** 不涉及。                                            |
| task_id    | 是    | String | **参数解释：** 任务ID，即新建检查任务接口的返回值，每个代码检查任务及其下的分支任务、通过API创建的增量任务都有唯一的任务ID。即[查询任务列表](https://support.huaweicloud.com/api-codecheck/ShowTasksList.html)接口响应中的id字段。 **约束限制：** 不涉及。 **取值范围：** 长度为\[1\~32\]个字符。 **默认取值：** 不涉及。 |
   
表2Query参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| execute_id | 否    | String | **参数解释：** 执行记录ID，即每一次执行版本级或门禁级扫描的唯一ID。通过[执行检查任务](https://support.huaweicloud.com/api-codecheck/RunTaskV2.html)接口的返回值可获取执行记录ID。 **约束限制：** 不涉及。 **取值范围：** 32位UUID。 **默认取值：** 无，不传时查询任务的最近一次的检查日志。 |
   
#### 请求参数
表3请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 用户Token。通过调用IAM服务[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)接口获取（响应消息头中X-Subject-Token的值）。 **约束限制：** 不涉及。 **取值范围：** 长度为\[1\~100000\]的字符。 **默认取值：** 不涉及。 |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数         | 参数类型                                                       | 描述                                                                                                                            |
|:---|:---|:---|
| param_info | [ParamInfo] object       | **参数解释：** 任务基本信息。                                                                              |
| log_info   | Array of [LogInfo] objects | **参数解释：** 失败日志详情。 **取值范围:** 不涉及。 |
   
 表5ParamInfo 
| 参数             | 参数类型   | 描述                                                                                                                                       |
|:---|:---|:---|
| url            | String | **参数解释：** 代码仓地址。 **取值范围:** 不涉及。             |
| branch         | String | **参数解释：** 任务本次扫描的代码仓分支。 **取值范围:** 不涉及。      |
| language       | String | **参数解释：** 任务本次扫描的规则语言。 **取值范围:** 不涉及。       |
| exclude_dir    | String | **参数解释：** 任务配置的排除目录信息。 **取值范围:** 不涉及。       |
| encode         | String | **参数解释：** 废弃字段。 **取值范围:** 不涉及。              |
| compile_config | String | **参数解释：** 任务的部分检查参数json格式信息。 **取值范围:** 不涉及。 |
| rule_template  | String | **参数解释：** 废弃字段。 **取值范围:** 不涉及。              |
   
 表6LogInfo 
| 参数           | 参数类型   | 描述                                                                                                                                       |
|:---|:---|:---|
| display_name | String | **参数解释：** 检查日志页面所显示的子任务阶段名称。 **取值范围:** 不涉及。 |
| log          | String | **参数解释：** 扫描日志内容。 **取值范围:** 不涉及。            |
| level        | String | **参数解释：** 废弃字段。 **取值范围:** 不涉及。              |
| analysis     | String | **参数解释：** 任务失败的简要原因。 **取值范围:** 不涉及。         |
| faq          | String | **参数解释：** 废弃字段。 **取值范围:** 不涉及。              |
   
**状态码：400**
表7响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                          |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码。 **取值范围：** 不涉及。  |
| error_msg  | String | **参数解释：** 错误描述。 **取值范围：** 不涉及。 |
   
**状态码：401**
表8响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                          |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码。 **取值范围：** 不涉及。  |
| error_msg  | String | **参数解释：** 错误描述。 **取值范围：** 不涉及。 |
   
#### 请求示例
```
GET https://{endpoint}/v2/{project_id}/tasks/{task_id}/log-detail
```
#### 响应示例
**状态码：200**
请求成功!
```
{
  "param_info" : {
    "url" : "git@xxxxxx_only00001/file.git",
    "branch" : "master",
    "language" : "JAVA",
    "exclude_dir" : "aa",
    "encode" : "",
    "compile_config" : "",
    "rule_template" : ""
  },
  "log_info" : [ {
    "log" : "2023-01-04 14:31:33 Running on server:10.75.***.***\n2023-01-04 14:31:34 waiting subJob to execute\n2023-01-04 14:33:38 flush redis cache successfully!\n2023-01-04 14:33:38 all subJob finish!",
    "level" : "",
    "analysis" : "2023-01-04 14:31:33 Running on server:10.75.***.***\n2023-01-04 14:31:34 waiting subJob to execute\n2023-01-04 14:33:38 flush redis cache successfully!\n2023-01-04 14:33:38 all subJob finish!",
    "faq" : "",
    "display_name" : "sonarqube"
  } ]
}
```
**状态码：400**
请求异常。
```
{
  "error_code" : "CC.xxxxxxxx.400",
  "error_msg" : "请求参数校验失败,请检查请求参数是否正确"
}
```
**状态码：401**
权限不足。
```
{
  "error_code" : "CC.00000003",
  "error_msg" : "认证信息过期"
}
```
#### 状态码
| 状态码 | 描述    |
|:---|:---|
| 200 | 请求成功! |
| 400 | 请求异常。 |
| 401 | 权限不足。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-codecheck/ErrorCode.html)。
