
# 使用APIG专享版实现请求自定义信息打印到LTS日志流
#### 应用场景
默认日志仅记录通用调用信息，无法携带业务维度的请求标识。当出现调用异常时，开发者难以按用户身份、来源渠道等业务关键字段快速检索日志，往往需要跨系统关联多份日志才能定位问题，排查效率低且成本高。API网关支持将API的调用日志推送至LTS日志流，日志采用固定格式并预留自定义字段。用户可以通过自定义日志字段，将请求参数值（如请求头、查询参数、路径参数等）按需打印至日志中，实现请求自定义信息的灵活记录。
本实践指导用户自定义一个custom_data_log1字段，用于记录用户请求头中的user_id字段值，便于查看请求来源和用户身份信息。
#### 约束与限制
- 自定义日志只支持打印由客户端发起的请求信息，不支持打印在APIG中定义的常量参数。
- 自定义日志最多可配置10个字段：custom_data_log1\~custom_data_log10，且字段大小总和不得超过2KB。
 
#### 资源规划
表1资源规划 
| 资源        | 数量 |
|:---|:---|
| 云日志服务LTS  | 1  |
| APIG专享版实例 | 1  |
   
#### 前提条件
- 已创建一个API。如果未创建，请[创建API](https://support.huaweicloud.com/usermanual-apig/apig_03_0128.html)。
- API网关的日志打印依赖于云日志服务（Log Tank Service，简称LTS），需要在LTS服务中先创建日志组和日志流，并且将APIG日志接入LTS。
  1. 创建一个日志组，具体操作请参考[创建日志组](https://support.huaweicloud.com/usermanual-lts/lts_04_0003.html)章节。
  
  2. 创建一个日志流，具体操作请参考[创建日志流](https://support.huaweicloud.com/usermanual-lts/lts_04_0004.html)章节。
  
  3. 将APIG日志接入LTS，具体操作请参考[API网关APIG接入LTS](https://support.huaweicloud.com/usermanual-lts/lts_04_0506.html)章节。
     ![](https://support.huaweicloud.com/bestpractice-apig/public_sys-resources/note_3.0-zh-cn.png)
     在进行APIG日志接入LTS操作时，暂时不需要前往APIG页面配置日志组和日志流，请在日志接入完成后，按照以下流程配置。
     
   
 
#### 操作流程
![](https://support.huaweicloud.com/bestpractice-apig/zh-cn_image_0000002591821734.png)
1. [对接LTS的日志组和日志流]
   建立API网关与LTS之间的日志传输通道，确保API调用日志能够被正确投递到指定的日志存储位置。
   
2. [开启自定义日志功能]
   启用API网关日志中的自定义字段功能，允许用户根据业务需求，选择性地将请求参数（如请求头、查询参数、路径参数等）打印到日志中，实现精细化的日志记录。
   
3. [调用API并查看日志]
   验证自定义日志配置是否生效，通过实际调用API并查看LTS日志，确认自定义字段是否正确打印，从而实现请求参数的完整记录。
   
 
 #### 对接LTS的日志组和日志流
1. 登录[API网关控制台](https://console.huaweicloud.com/apig2/#/overview)。
2. 根据实际业务在左侧导航栏上方选择实例。
3. 在左侧导航栏选择"监控分析 \> 日志分析"。
4. 在"日志分析"页签单击"日志与追踪配置"。
5. 在弹窗中配置日志信息。 
   表2日志信息参数配置 
   | 参数     | 配置说明                         |
   |:---|:---|
   | 启动日志记录 | 启用API的调用日志。                  |
   | 日志组    | 选择已创建的日志组。例如，lts-group-apig。 |
   | 日志流    | 选择已创建的日志流。例如，lts-topic-apig。 |
      
   
   
6. 单击"确定"。 
   显示日志页面表示创建成功。
   
   
 
 #### 开启自定义日志功能
1. 在左侧导航栏中选择"实例管理"。
2. 单击对应实例的名称或"查看控制台"，进入实例详情页面。
3. 单击"配置参数"页签。
4. 在"custom_log"参数所在行，单击"编辑"。
5. 将开关由"off"变更为"on"，单击"保存"。
6. 展开"custom_log"配置，单击"编辑"。
7. 在弹窗中单击"添加"，然后选择需要打印到日志中的参数位置，以及填写需要打印的参数。 
   此处参数位置选择"header"，参数名称输入"user_id"。
   
   
8. 单击"确定"。 
   参数列表中显示已添加的参数，表示添加成功。
   
   
 
 #### 调用API并查看日志
1. 返回"实例管理"页面，在左侧导航栏中选择"API管理 \> API列表"。
2. 单击已创建的API名称，进入已创建的API详情页面。
3. 在"API运行"页签中，单击"调试"，进入调试页面。
4. 选择"Headers"页签，单击"新增请求参数"。 
   参数名为"user_id"，参数值为"123456"。
   
   
5. 单击"调试"，响应结果中返回状态码"200"，表示调试成功，执行下一步。否则，请参考[错误码](https://support.huaweicloud.com/usermanual-apig/apig_03_0048.html)章节处理。
6. 返回"API列表"页面，在左侧导航栏中选择"监控分析 \> 日志分析"。
7. 在"日志搜索"页签中，查看日志。 
   custom_data_log1字段显示请求头user_id的值。
   ![](https://support.huaweicloud.com/bestpractice-apig/zh-cn_image_0000002655438657.png)
   
   
 
