Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
hangsman committed Jan 16, 2022
2 parents 94fc8ce + 614c8af commit e7cc215
Showing 1 changed file with 43 additions and 47 deletions.
90 changes: 43 additions & 47 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

> 参考 [mzt-biz-log](https://github.com/mouzt/mzt-biz-log) 实现的一款基于 spring aop 操作日志记录工具 支持自定义方法处理
<p align="center">
<p>
<img src="https://maven-badges.herokuapp.com/maven-central/cn.hangsman.operationlog/operation-log-core/badge.svg" />
<a target="_blank" href="https://github.com/hangsman/operation-log/blob/master/LICENSE">
<img src="https://img.shields.io/apm/l/vim-mode.svg?color=yellow" />
Expand Down Expand Up @@ -36,39 +36,44 @@ public class Application {
}
```

### 添加 @OperationLog 注解
### 添加 `OperationLog` 注解
##### 1. 基础用法

```java

@Service
public class OrderServiceImpl implements OrderService {
@Override
@OperationLog(
category = "创建订单",
fail = "订单创建失败:{#_errorMsg}",
content = "创建了一个订单 订单id: {#order.orderID}"
)
public Order createOrder(Order order) {
return new Order();
}
@OperationLog(
category = "创建订单",
fail = "订单创建失败:{#_errorMsg}",
content = "创建了一个订单 订单id: {#order.orderID}")
public Order createOrder(Order order) {
return new Order();
}
```
##### 2. 使用变量
> 可以通过 `#变量名` 的方式使用方法的入参
* `#_ret` 方法返回值
* `#_errorMsg` 方法抛出的异常信息
```java
@OperationLog(
fail = "订单创建失败:{#_errorMsg}",
content = "创建了一个订单 订单id: {#order.orderID}",
detail = "{#_ret.toString()}")
public Order createOrder(Order order) {
return new Order();
}
```

## 其他用法

### 日志记录

实现 `OperationLogRecorder`
> 实现 `OperationLogRecorder` 并注入到容器中
```java
public interface OperationLogRecorder {
void record(OperationLog operationLog);
}
```

### 自定义方法
### 自定义表达式方法

实现 `SpelFunction` 来创建一个spel表达式方法
> 实现 `SpelFunction` 来创建一个spel表达式方法
```java

Expand All @@ -86,45 +91,36 @@ public class JsonSpelFunction implements SpelFunction {
}
```

在模板中通过 `$方法名称(变量)` 来使用
> 在模板中通过 `$方法名称(变量)` 来使用
```java

@Service
public class OrderServiceImpl implements OrderService {
@Override
@OperationLog(
category = "创建订单",
fail = "订单创建失败:{#_errorMsg}",
content = "创建了一个订单 订单id: {#order.orderID}",
detail = "{$json(#_ret)}"
)
public Order createOrder(Order order) {
return new Order();
}
}
@OperationLog(detail = "{#_ret != null ? $json(#_ret) : null}")
public Order createOrder(Order order)
```

### 前置处理

格式为 `变量名={spel函数}`
> 格式为 `变量名={spel函数}`
之后在其他模板中可以使用 `#变量名` 获取函数返回值
> 之后在其他模板中可以使用 `#变量名` 获取函数返回值
```java
@OperationLog(
before = {"oldName={$oldNameFun(#user.id)}"},
content = "将用户名从 {#oldName} 修改为 {#user.username}")
public User updateName(User user)
```

@Service
public class UserServiceImpl implements UserService {
@Override
@OperationLog(
before = {"oldName={$oldNameFun(#user.id)}"},
content = "将用户名从 {#oldName} 修改为 {#user.username}")
public User updateName(User user) {
### 额外字段
> 某些情况下可能现有参数不能满足业务,可以通过使用`additional`字段来添加额外的操作信息
}
}
> 格式为:`key={spel表达式}`
```java
@OperationLog(additional = {"type={#user.enable ? '启用' : '禁用'}"})
public User updateUser(User user)
```

## 支持

如果您喜欢该项目,请给项目点亮⭐️,感谢!
> 如果您喜欢该项目,请给项目点亮⭐️,感谢!

0 comments on commit e7cc215

Please sign in to comment.