#### 一、前提说明 
1、想保存操作日志和错误日志，需要引入platomix-gmetry-framework.2.1.3.jar；  
2、提供3种日志存储内容，分别存储到3张表中(blade_log_api, blade_log_usual, blade_log_error)；  
3、提供开关可以控制是否存储相应的日志。  

```
#是否开启存储apiLog[默认：true]
blade.log.apiLogEnabled: false  

#是否开启存储errorLog[默认：true]
blade.log.errorLogEnabled: false

#是否开启常规日志[默认：true]
blade.log.usualLogEnabled: false
```

#### 二、原理和场景，使用方式
1、apiLog日志  
  * 原理：通过@ApiLog("业务概述")注解到某个接口方法上实现；
  * 场景：主要用于对核心接口用户的操作记录做存储溯源；
  * 使用方式：把注解添加到核心接口的方法上即可，形如：

```
@ApiLog("ETL任务流程")  << 核心代码
@PostMapping("/run/{jobId}")
@ApiOperation(value = "运行任务", httpMethod = "POST")
public R<Boolean> run(@PathVariable Integer jobId){
...
}

```

2、errLog日志
  * 原理：通过全局拦截错误信息记录【无需开发人员操作】；
  * 场景：记录系统的异常错误信息，方便开发人员排查错误，以及追溯历史问题；
  * 使用方式：无

3、usual日志
  * 原理：开发人员根据业务需求在代码里面添加日志，类似log.info("")；
  * 场景：根据产品要求或者开发人员自主意愿等，记录一些代码逻辑中核心日志信息，支持debug/info/warn/error4种级别，可以在数据库中查询。
  * 使用方式：

```
1、先注入PlatomixLogger
@Autowired
private PlatomixLogger plaomixLogger;

2、在需要记录日志的位置使用：
plaomixLogger.info("关键ID[便于搜索]", "日志内容");
plaomixLogger.debug("关键ID[便于搜索]", "日志内容");
plaomixLogger.warn("关键ID[便于搜索]", "日志内容");
plaomixLogger.error("关键ID[便于搜索]", "日志内容");
```

