统一日志管理
matevip 2021-6-3 大约 2 分钟
# 一、日志使用
# 1.1 日志工具类引用
<dependency>
<groupId>vip.mate</groupId>
<artifactId>mate-starter-log</artifactId>
</dependency>
1
2
3
4
2
3
4
# 1.2 日志使用
# 使用示例
@Log(value = "字典表列表", exception = "字典表列表请求异常")
1
采用@Log注解
# 拦截器LogAspect
src/main/java/vip/mate/core/log/aspect/LogAspect.java
阅读此类下面的代码。
提示
小技巧:
vip.mate.core.* 表示这个包在核心模块里
vip.mate.core.log
,表示这个模块属于log模块,一般引用方式是:mate-starter-log
# 二、两种日志模式
# 2.1 日志模式使用
src/main/java/vip/mate/core/log/event/LogListener.java
在这个类中有一段代码:
@Async
@Order
@EventListener(LogEvent.class)
public void saveSysLog(LogEvent event) {
if (event.getSource() instanceof CommonLog) {
CommonLog commonLog = (CommonLog) event.getSource();
// 发送日志到kafka
printLog(commonLog);
if (logProperties.getLogType().equals(LogType.KAFKA)) {
commonLogProvider.sendCommonLog(commonLog);
} else {
sysLogProvider.set(commonLog);
}
} else {
if (event.getSource() instanceof LoginLogDTO) {
LoginLogDTO loginLog = (LoginLogDTO) event.getSource();
// 发送日志到kafka
printLog(loginLog);
sysLogProvider.setLoginLog(loginLog);
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
如果logProperties.getLogType()的值设置为kafka的话,则将日志发送到Kafka中,这时候需要你的系统安装了kafka并配置好Kafka的连接此类
默认为db的模块,则存取到本地数据库内,通过
feign
调用mate-system
模块,进行日志记录。
# 2.2 补充说明
kafka的模式,目前未实现消费者这块,留给大家自行实现,微服务模块不是拆分越细越好,在业务量不大的情况下,还是以业务实现为主。
日志模块里还有一些日志抓取的方法和异步的实现方式,大家可以自行研究,相信感觉非常有收获。
日志模块也自动拦截正常日志和异常日志。前端界面展示如下: