Skip to content

日志

框架使用 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。