日志
框架使用 Spring 默认的 logback 日志实现记录普通日志,同时也提供了记录用户操作日志的功能。
普通日志
普通场景下创建日志记录对象实例,然后调用实例方法即可。
示例:
java
public class FooImpl {
private static final Logger log = LoggerFactory.getLogger(SagUmppServiceImpl.class);
public void foo(String id, String name) {
log.info("请求参数 :{} {}", id, name);
}
}提示
日志默认会输出到控制台和文件;Error 及以上级别的日志会写入数据库,可以在“系统日志”页面查看。
操作日志
有些关键业务操作需要记录操作用户和时间等信息,这时普通日志无法满足需要。 框架提供了 Log 注解来应对这种场景。
示例:
java
@ApiOperation("根据id 删除文件")
@DeleteMapping("/{id}")
@Log(title = "根据id 删除文件", operateType = OperateType.DELETE)
public AjaxResult<Boolean> delete(@PathVariable("id") String id) {
boolean isSuccess = service.delete(id);
return AjaxResult.success(isSuccess);
}提示
操作日志会被写入数据库,可以在“用户日志”页面查看。
TraceId v1.7.3+
应用服务器通常以多线程同时处理多个请求,不同线程中产生的多条日志很可能互相交叉,阅读时难以快速区分。 尤其是难以获得一次请求相关的所有日志。我们为日志添加了 TraceId 信息,可以解决这些问题。
配置方式
配置方式比较简单,在 Api 项目中添加 TLog 依赖,然后配置日志格式即可。
xml
<!-- pom.xml -->
<!-- tlog 日志上下文 -->
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>tlog-web-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>tlog-xxljob-spring-boot-starter</artifactId>
</dependency>yaml
# application.yml
# 日志配置
tlog:
pattern: <$traceId>运行效果
这样每次记录日志,都会包含 trace id 信息。在同一个请求中处理过程中产生的日志,它们的 trace id 一致。 下例显示了一次 trace id 为 83631188159674225332224 的请求处理时产生的日志。
text
2026-03-23 16:42:21 [http-nio-8089-exec-2] INFO <83631188159674225332224> c.alibaba.druid.pool.DruidDataSource
- {dataSource-2} inited
2026-03-23 16:42:21 [http-nio-8089-exec-2] DEBUG <83631188159674225332224> c.h.m.system.UserMapper.selectList
- ==> Preparing: SELECT id FROM sys_user WHERE (u_sn = ?)
2026-03-23 16:42:21 [http-nio-8089-exec-2] DEBUG <83631188159674225332224> c.h.m.system.UserMapper.selectList
- ==> Parameters: string(String)
2026-03-23 16:42:21 [http-nio-8089-exec-2] DEBUG <83631188159674225332224> c.h.m.system.UserMapper.selectList
- <== Total: 0
2026-03-23 16:42:21 [http-nio-8089-exec-2] INFO <83631188159674225332224> c.h.f.s.s.UserDetailsServiceImpl
- 登录用户:string 不存在.
2026-03-23 16:42:21 [http-nio-8089-exec-2] ERROR <83631188159674225332224> c.h.f.e.GlobalExceptionHandler
- 登录用户:string 不存在提示
非 HTTP 请求产生的日志,比如项目启动,不会产生 trace id。