slf4j 以及 lombok 知识总结

slf4j

slf4j只是一个日志的标准框架,并不是日志系统的标准实现。它主要是

  • 提供日志接口
  • 提供获取日志对象的方法
  • 所以以上只是借助slf4j稍微优化了以下log4j的实现,而且log4就并不能直接实现slf4j,所以还借助了slf4j-log4j12进行桥接来实现slf4j。

此外,其他的log4j2和logback也是类似,需要整合不同的包来实现,这里在网上看到了资料就也记录一下吧

  • slf4j与log4j整合导入的jar包为 :slf4j-api.jar slf4j-log4j12.jar log4j.jar

  • slf4j与log4j2整合导入的jar包为:slf4j-api.jar log4j-slf4j-impl.jar log4j-api.jar log4j-core.jar

  • slf4j与logback整合导入的jar包为:slf4j-api.jar logback-core.jar logback-classic.jar

lombok

提供了一些注解来简化java代码
官网:http://projectlombok.org/
查看lombok所有api:https://projectlombok.org/api/overview-summary.html

几个常用的 lombok 注解:

注解作用
@Data注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter注解在属性上;为属性提供 setting 方法
@Getter注解在属性上;为属性提供 getting 方法
@SneakyThrows无需在签名处显式抛出异常
@Log4j注解在类上;为类提供一个 属性名为log 的 log4j 日志对像
@Slf4j同上
@NoArgsConstructor注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor注解在类上;为类提供一个全参的构造方法
@NonNull如果该注解用在一个参数生,lombok将在方法/构造函数主体的开头插入一个空检查,抛出一个NullPointerException,并将该参数的名称作为异常的message。如果将这个注解用在一个字段上,那么任何给这个字段赋值的方法都会进行null检查。
@ToString为对象生成toString方法,默认将所有的字段包含在内。callSuper 参数是否调用父类方法,exclude参数去除不需要的字段。
@EqualsAndHashCode生成equals方法和hashCode方法。callSuper 参数是否调用父类方法,exclude参数去除不需要的字段。
@Cleanup该注释可以用来保证分配的资源被释放。生成try、finally代码,在finally块中释放资源。
@Synchronized同步方法,生成一个私有锁。
@SneakyThrows为需要处理的异常增加了try、catch语句
@Value这个注解用在 类 上,会生成含所有参数的构造方法,get 方法,此外还提供了equals、hashCode、toString 方法,注意没有set
@RequiredArgsConstructor该注解使用在类上,使用类中所有带有 @NonNull 注解的或者带有 final 修饰的成员变量生成对应的构造方法。
@Builder使用私有构造函数生成一个名为TBuilder的内部类,创建一个构造器。
@Delegate该注解已被遗弃
@GeneratedLombok最终会自动将这个注释添加到所有生成的构造函数、方法、字段和类型中。用户无需使用这个注解
@Singular与@Builder一起使用单一注释在构建器中为集合创建单个元素“add”方法。
@Var将字段变为var类型,并推断它的类型。变量,可读可写
@Val将字段变为var类型,并推断它的类型。final类型,常量
还有一些Log注解使lombok生成一个日志字段
lombok.experimental包中的注解一些实验性的注解,不稳定,可能会有错误,以后可能会删除,不建议使用
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
集成Spring Boot、LombokSLF4J和Logback有以下几个步骤: 1. 引入依赖:在`pom.xml`文件中引入以下依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Lombok依赖 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <!-- SLF4J依赖 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> <!-- Logback依赖 --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency> ``` 2. 创建日志配置文件:在`src/main/resources`目录下创建`logback.xml`文件,并在其中配置日志输出格式、日志级别等信息。示例配置文件如下: ``` <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 定义日志输出格式 --> <property name="LOG_PATTERN" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/> <!-- 控制台输出 --> <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <!-- 文件输出 --> <appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/spring-boot-demo.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logs/spring-boot-demo-%d{yyyy-MM-dd}.log</fileNamePattern> </rollingPolicy> <encoder> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <!-- 定义日志级别 --> <root level="INFO"> <appender-ref ref="consoleAppender"/> <appender-ref ref="fileAppender"/> </root> </configuration> ``` 3. 在代码中使用SLF4J:使用SLF4J的API进行日志输出,示例代码如下: ``` import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { private static final Logger LOGGER = LoggerFactory.getLogger(HelloController.class); @GetMapping("/hello") public String hello() { LOGGER.debug("debug message"); LOGGER.info("info message"); LOGGER.warn("warn message"); LOGGER.error("error message"); return "Hello, world!"; } } ``` 4. 使用Lombok简化代码:使用Lombok注解简化代码,示例代码如下: ``` import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController @Slf4j public class HelloController { @GetMapping("/hello") public String hello() { log.debug("debug message"); log.info("info message"); log.warn("warn message"); log.error("error message"); return "Hello, world!"; } } ``` 以上就是集成Spring Boot、LombokSLF4J和Logback的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值