
# 场景六：使用e_if函数或e_switch函数判断日志并增加字段
推荐使用**e_if** 函数或**e_switch** 函数进行日志判断。更多信息，请参见[流程控制函数](https://support.huaweicloud.com/usermanual-lts/lts_07_0165.html)。
- e_if函数
  e_if函数是条件与操作组合。满足条件则进行对应操作，不满足条件则不进行对应操作，直接进行下一个条件判断。对于某一条日志，如果其中某一操作删除了日志，则不会再执行后续操作。
  ```
  e_if(条件1, 操作1, 条件2, 操作2, 条件3, 操作3, ....)
  ```
  
- e_switch函数 e_switch函数是条件与操作的配对组合。依次根据条件进行判断，满足条件的进行对应操作。不满足条件的不进行对应操作，直接进行下一个条件判断。如果没有满足任一条件并且配置了default参数，则执行default配置的操作并返回。
  ```
  e_switch(条件1, 操作1, 条件2, 操作2, 条件3, 操作3, ...., default=None)
  ```
  
示例如下所示：
- 原始日志
  ```
  {
      "status1":200,
      "status2":404
  }
  ```
  
- e_if函数
  - 加工规则
    ```
    e_if(e_match("status1", "200"), e_set("status1_info", "normal"),
         e_match("status2", "404"), e_set("status2_info", "error"))
    ```
    
  
  - 加工结果
    ```
    {
    "status1": 200,
    "status2_info": "error",
    "status1_info": "normal",
    "status2": 404
    }
    ```
    
   
- e_switch函数
  - 加工规则
    ```
    e_switch(e_match("status1", "200"), e_set("status1_info", "normal"), 
             e_match("status2", "404"), e_set("status2_info", "error"))
    ```
    
  
  - 加工结果：只要有一个条件满足，就返回结果，不再进行后续条件判断。
    ```
    {
    "status1": 200,
    "status2_info": "error",
    "status1_info": "normal",
    "status2": 404
    }
    ```
    
   
 
