如何在SpringBoot中轻松集成Lombok和Logback
最编程
2024-02-23 21:57:46
...
在项目中导入依赖
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.10</version> <scope>provided</scope> </dependency>
在idea中安装lombok插件
file->settings->plugins->搜索lombok
三 使用lombok
lombok常用注解
@Data
作用在类上,提供类所有属性的get set方法,此外还提供了hashcode equals tostring canequal方法
@Slf4j
注解在类上,为类提供一个属性名为log的slf4j日志对象
@NoArgsConstructor
注解在类上,为类提供一个无参构造器
@AllArgsConstructor
注解在类上,为类提供一个全参构造器
@Builder
注解在类上,使用Builder模式创建对象
四 使用logback
默认情况下,SpringBoot 采用logback来记录日志,并输出 INFO 级别日志到控制台
spring-boot-stater的依赖中包含了logback,无需导包
application.yml
logging:
file: application.log
logback-spring.xml 使用这个文件名放到resource下面无需其他配置,springboot会自动找到这个日志配置
<configuration> <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/application.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- rollover daily --> <fileNamePattern>logs/backup/application.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern> <maxFileSize>100MB</maxFileSize> <maxHistory>60</maxHistory> <totalSizeCap>50GB</totalSizeCap> </rollingPolicy> <encoder> <!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %magenta([%12.12thread]) %highlight(%-5level{5}) --- %24.24logger.%12.12M\(\) : %msg%n--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%12.12thread] %-5level{5} --- %24.24logger.%12.12M\(\) : %msg%n </pattern> </encoder> </appender> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %magenta([%12.12thread]) %highlight(%-5level{5}) --- %24.24logger.%12.12M\(\) : %msg%n--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%12.12thread] %-5level{5} --- %24.24logger.%12.12M\(\) : %msg%n </pattern> </encoder> </appender> <root level="INFO"> <appender-ref ref="STDOUT"/> <appender-ref ref="ROLLING"/> </root> </configuration>
推荐阅读
-
如何在SpringBoot中轻松集成SQLite数据库支持
-
谈API网关和应用网关--从技术选型谈起:API网关的性能是第一指标,一般会选择Kong、Apisix等基于OpenResty+Lua的高性能网关(得益于Ngnix基于C++的高性能无阻塞网络IO模型),应用网关一般是结合自身业务的技术栈来选择,比如SpringCloud Gateway、Zuul等。当然,这也不是绝对的,如果你对 Kong 非常熟悉,用它来做应用网关也不是不可能。 一些开源网关项目的例子: Kong Apisix 特使 Traefik SpringCloud 网关 Zuul / Zuul2 接下来,我们将重点介绍应用网关。在网格中,应用网关侧重于以下功能(与 API 网关不同) 动态路由 服务发现 服务聚合/协调 可观察性 如果您使用的是 Sping 技术栈,使用 SpringCloud Gateway 和 Zuul 可以轻松重用现有类库,如集成您的注册表,使用 Hystrix、resilience4j 完成熔断和限流功能等,快速完成一个生产级可用应用网关,如果引入新的复杂技术栈 成本将直线上升。根据使用场景的不同,性能有时并不是第一指标,但通常我们很容易陷入性能误区。
-
如何在Springboot中利用Logback轻松配置日志并记录异常情况
-
如何在Springboot中完全配置和利用Logback日志系统
-
如何在Spring Boot中轻松集成logback日志配置
-
如何在SpringBoot中轻松集成Lombok和Logback
-
在 SpringBoot 中如何轻松集成和设置 RestTemplate?