新增pom依赖
<dependency>
<groupId>io.github.mouzt</groupId>
<artifactId>bizlog-sdk</artifactId>
<version>1.0.1</version>
</dependency>
启动项Application,添加注解@EnableLogRecord(tenant = “xxx.xxx”)
tenant 代表租户标识,可自由定义
@SpringBootApplication
@EnableLogRecord(tenant = "com.test.demo")
@Slf4j
public class StudyProjectApplication {
public static void main(String[] args) {
SpringApplication.run(StudyProjectApplication.class, args);
log.info("启动成功!");
}
}
- 在接口或实现类上添加注解@LogRecordAnnotation,有如下属性:
- prefix 用以区分业务
- bizNo 业务id
- success 成功打印的msg
- fail 失败打印的msg
- operator 操作人
- category 用以区分日志类型,比如有些是运营人员的操作日志,不想让系统暴露
- detail 可拿到接口传进来的对象参数
- SpEL 表达式 {{#A.b}}表示参数,eg:{{#devicePoint.toString()}}
/**
* pojo插入,measurement即Pojo
*
* @param devicePoint
* @return
*/
@LogRecordAnnotation(prefix = "influxDB",
detail = "{{#devicePoint.toString()}}",
bizNo = "{{#devicePoint.name}}",
success = "新增成功{{#devicePoint.name}},下单结果:{{#_ret}}",
fail = "新增失败,「{{#_errorMsg}}」",
operator = "{{#currentUser}}",
category = "MANAGER")
@PostMapping("/insertPojo")
public String insertPojo(@RequestBody DevicePoint devicePoint) {
Point.Builder builder = Point.measurementByPOJO(devicePoint.getClass());
builder.addFieldsFromPOJO(devicePoint);
builder.tag("no", String.valueOf(UUID.randomUUID()));
influxDB.write(builder.build());
return "成功";
}
- 执行结果
成功日志:
【logRecord】log=LogRecord(id=null, tenant=com.test.demo, bizKey=influxDB_device#3, bizNo=device#3, operator=111, action=新增成功device#3,下单结果:成功, category=MANAGER, createTime=Fri Feb 26 14:13:44 CST 2021, detail=DevicePoint(name=device#3, time=null, no=123, value=3cm))
失败日志:
【logRecord】log=LogRecord(id=null, tenant=com.test.demo, bizKey=influxDB_device#3, bizNo=device#3, operator=111, action=新增失败,「/ by zero」, category=MANAGER, createTime=Fri Feb 26 14:21:31 CST 2021, detail=DevicePoint(name=device#3, time=null, no=123, value=3cm))