背景
当前采用SpringBoot架构进行打印日志,会有很多的方式,其中推荐使用SpringBoot自带的工具Slf4j
该工具使用起来很方便。
SpringBoot整合@Slf4j
1.需要安装的工具
我们采用的是IDEA开发工具,所以这里我们要安装工具:
Lombok工具
2.然后需要添加的依赖包:
<!-- 该依赖是针对日志的相关包-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
</dependency>
3.测试类SpringBootTest中的使用:
4.具体的使用:
首先具体的使用分为多种情况,但是我们在开发中主要涉及到的就是两种:
1) 可以打印string字符串。
2)或者是string字符串拼接对象。
@Slf4j
@RestController
public class GuoBiaoSynController {
@PostMapping("/gcg")
public void getInfo(@RequestBody JSONObject jsonObject) {
String temp = JSON.toJSONString(jsonObject);
log.info("国标云请求体:{}", jsonObject); //直接string + 对象
log.info(JSON.toJSONString(jsonObject));
log.info("00000000000000000");
log.info(jsonObject.getString("Header"));
}
}
注意点:
其实在开发中比较常用的就是打印Object对象,但是打印Object对象就要采用string拼接的方式,这种方式要有{}符号,因为达表示将要输出的东西进行了包装放进{}中。
普通类整合@Slf4j
依赖已引入,直接开干就行:
@Slf4j
public class DateUtils {
private static final String DATE_TIME_FORMATTER = "yyyy-MM-dd HH:mm:ss";
public static final String SECOND = "SECOND";
public static final String MINUTE = "MINUTE";
public static final String HOUR = "HOUR";
/**
* 功能描述:获取两个时间的间隔。
* 日志声明:调用的每个方法,都必须有日志留痕。
* 异常声明:捕获异常,返回指定结果。
*
* @param startTime startTime
* @param finishTime finishTime
* @param dateType 类型
* @return 间隔 ? null
*/
public static Long getDuration(@NonNull String startTime,
@NonNull String finishTime,
@NonNull String dateType) {
Long result = null;
try{
LocalDateTime startLocalDateTime = LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern(DATE_TIME_FORMATTER));
LocalDateTime finishLocalDateTime = LocalDateTime.parse(finishTime, DateTimeFormatter.ofPattern(DATE_TIME_FORMATTER));
Duration duration = Duration.between(startLocalDateTime, finishLocalDateTime);
switch (dateType) {
case HOUR:
result = duration.toHours();
case MINUTE:
result = duration.toMinutes();
case SECOND:
result = duration.getSeconds();
default:
result = 0L;
}
}catch (Exception e) {
log.error("[]. RESULT. startTime:[{}], finishTime:[{}]", startTime, finishTime, e);
result = null;
}
log.info("[]. RESULT. startTime:[{}], finishTime:[{}], duration:[{}]", startTime, finishTime, result);
return result;
}
public static void main(String[] args) {
System.out.println(getCurrentDateTime());
}
}