java日志系统 @Slf4j注解的正确使用
在maven项目的pom.xml中添加依赖:
<dependency>
<groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.5</version>
</dependency>
<dependency>
<groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> <scope>provided</scope>
</dependency>
- slf4j就是众多接口的集合,它不负责具体的日志实现,只在编译时负责寻找合适的日志系统进行绑定。具体有哪些接口,全部都定义在slf4j-api中。
- slf4j-log4j12是链接slf4j-api和log4j中间的适配器。它实现了slf4j-apiz中StaticLoggerBinder接口,从而使得在编译时绑定的是slf4j-log4j12的getSingleton()方法
- log4j是具体的日志系统。通过slf4j-log4j12初始化Log4j,达到最终日志的输出。
- lombok:一个插件,封装了log的get和set,可以直接使用log来输出日志信息。
具体的使用
@Slf4j
public class ValidatorAction {
public void printValidatorResult(Set<ConstraintViolation<ValidatorBean>> set1){
for(ConstraintViolation<ValidatorBean> constraintViolation:set1){
log.info("错误: "+constraintViolation.getMessage());
log.info("字段: "+constraintViolation.getPropertyPath().toString());
}
}
}