# 日志概述
用于记录系统产生的日志,提供了便捷的方式来开启日志记录,同时提供了日志查询的管理页面。
日志类型包括:
- 实体操作日志(创建、更新、删除、查询);
- 接口请求日志;(可自定义日志内容)
- 登录日志;(用户在应用侧登录的日志,仅支持授权码登录模式)
这些内置的日志功能,可以帮助用户更好地了解系统的运行情况,方便排查问题。但是,如果开启的日志太多,也可能会影响系统的性能,因此需要根据实际情况来开启日志。一般查询类的日志不建议开启,因为会产生大量的日志记录。
# 引入依赖
<dependency>
<groupId>net.bingosoft.fuse.oss</groupId>
<artifactId>lcdp-services-log</artifactId>
<version>${lcdp.version}</version>
</dependency>
- 具体版本在【版本更新】中查看
注意:在引入依赖后,数据库中会自动创建两张表:
sys_audit_log:用于记录各种类型的操作日志sys_client_log:用于记录终端的日志(例如移动端,PC端应用的日志,属于特殊场景)
# 启用日志
# 1.实体操作日志
在实体上开启日志,对实体的创建、更新、删除、查询等操作进行日志记录。这里以合同实体为例。
第一种方式:在IDE中开启日志
适用场景:通过IDE创建的实体

第二种方式:在代码中开启日志
适用场景:通过代码创建的实体
需要在实体类上增加 @fly.core.data.annotation.Audited 注解,或在 @Entity 注解中设置 audited = true,参考如下代码:
@Entity(audited = true)
public class Contract {
// fields
}
# 2.接口请求日志
在接口上开启日志,对接口的请求进行日志记录。这里以基于SQL的查询接口为例。
注意:基于实体创建的接口,不需要在接口上单独开启记录日志,实体开启日志后,会自动记录,日志类型为实体操作。如果同时开启,将会有两条日志记录。
第一种方式:在IDE中开启日志
适用场景:通过IDE创建的接口

第二种方式:在代码中开启日志
适用场景:通过代码创建的接口
对于 Controller 中定义的接口,除了在启动类或配置类上开启 @EnableAuditing,还需要在类或接口方法上增加 @Auditable 注解:
import fly.core.security.auditing.EnableAuditing;
@EnableAuditing // 启动类开启日志记录
public class WebApplication {
...
}
import fly.core.meta.annotation.Summary;
import fly.core.security.auditing.Auditable;
@RestController
@RequestMapping("/contract")
@Auditable // 开启日志记录
public class ContractController {
@GetMapping("/test")
@Summary("自定义日志内容")
public void test() {
}
}
示例中@Summary注解用于自定义日志内容,如果不设置,将取接口方法名。除了@Summary注解外,还可以使用下列注解设置值:
@fly.core.meta.annotation.Desc@fly.core.meta.annotation.Title@io.swagger.v3.oas.annotations.Operation(description = "")@io.swagger.v3.oas.annotations.Operation(summary = "")
# 3.登录日志
参考 登录日志 章节。
# 4.业务类中记录日志
除了系统自动记录的日志外,用户也可以在业务代码中记录日志。业务代码中记录的日志和系统自动记录的日志一样,都会存储在SysAuditLogEntity实体中。
启动类或配置类上开启 @EnableAuditing,并在代码中注入 LcdpAuditLogHandler Bean,通过log方法记录日志。参考如下代码:
import net.bingosoft.fuse.lcdp.log.handler.LcdpAuditLogHandler;
@Bean
LcdpAuditLogHandler auditLogHandler;
...
protect void demo() {
// 记录日志
auditLogHandler.log(AuditLog.builder("操作内容", LogType.MODULE, OperationType.OTHER)
.data(dataObj) // 业务数据
.build());
}
# 查询日志
# 1.操作日志
页面地址:/lowcode/syslog.operation,在导航页中配置导航路径为该地址。

日志信息包括:登录账号、操作人名称、操作类型(HTTP、创建、修改、删除、查询)、日志类型(接口请求、实体操作)、IP地址、日志内容、创建时间等信息。
# 2.登录日志
页面地址:/lowcode/syslog.login,在导航页中配置导航路径为该地址。该模块在1.8.8后续的版本中新增,在添加之前需要先调整下登录模式,修改为授权码登录,才能在应用侧获取到登录日志,登录模式调整不会影响业务应用的运行。参考:授权码模式登录
