Lombok中含有自己封装的日志功能,导入依赖后,在需要使用的类上加入@Slf4j即可在代码中使用log对象来打印日志,方便后期的调试。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.26</version>
</dependency>
举个例子:
在系统中用户注册时,传入AuthUserDTO实体,通过日志来显示其各个属性内容。在捕获到异常后,使用日志来打印错误信息。
@RequestMapping("register")
public Result register(@RequestBody AuthUserDTO authUserDTO) {
try {
if (log.isInfoEnabled()) {
log.info("UserController.register.dto:{}", JSON.toJSONString(authUserDTO));
}
checkUserInfo(authUserDTO);
AuthUserBO authUserBO = AuthUserDTOConvert.INSTANCE.
convertDtoToBo(authUserDTO);
return Result.ok(authUserDomainService.register(authUserBO));
} catch (Exception e) {
log.error("UserController.register.error:{}", e.getMessage(), e);
return Result.fail("注册用户失败");
}
}
在这里log.info()之前加入判断是因为,在打印之前,使用JSON对实体进行了序列化。在高并发的情况下,如果实体出现问题,就会浪费过多的资源。所以在打印之前,进行日志级别的判断,这就不会在出错的时候去序列化实体。