使用Lombok,这个插件是帮助我们用注解生成toString、构造方法、getter、setter方法以及hashCode、equals方法
简化日志过程
下面过程是在springboot上实施
1、导入依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
</dependency>
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
导入依赖后可以用以下注解@Setter@ToString@Getter@EqualsAndHashCode@AllArgsConstructor@Slf4j
有了这些注解在编译后会生成对应方法在字节码文件里。其中Equals方法重写了,@AllArgsConstructor(没加之前在字节码文件里只有无参构造,加了后只剩一个带所有参数的有参构造)
@Data=@Setter@ToString@Getter@EqualsAndHashCode
@SneakyThrows是Lombok下的注解,加在方法上可以省略不写try-catch
2、安装插件
这个插件的让idea编译器去识别Lombok,因为注解生成的方法是编译后在字节码文件里生成的,写代码的时候还没有get/set等方法,这时候idea审查就会报错,但是运行时是正常的。下载插件是让idea识别到lombok,提前识别到get/set等方法
3
在类上面加上@Slf4j,这样就向当前类所属的对象中注入一个属性log(相当于类多了一个成员变量Logger log)。
@Slf4j // 向当前类所属的对象中注入一个属性log
public class Test {
//加了@Slf4j相当于隐含了这个
//Logger log = LoggerFactory.getLogger(Test.class);
public String test() {
//System.out.println("test");
int param = 1;
log.info("test{}", param);//日志内容为test{1}
return "hello";
}
public static void main(String[] args) {
//格式化string
int param1 = 1;
int param2 = 2;
String s = "请求到了%dtestInterceptor%d";
String formatStr = String.format(s, param1, param2);
System.out.println(formatStr);//请求到了1testInterceptor2
}
}
4
在类的成员方法里调用log.info("xx");就可以在控制台打印info里的内容,并且它的格式和sb日志格式一样。
PS:日志可以认为是程序运行时打印的输出信息,用来判断是执行到什么位置发生了报错
在类里还可以调用
log.debug("debug message");
log.warn("warn message");
log.info("info message");
log.error("error message");
log.trace("trace message");