欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

如何在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}) -&#45;&#45; %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}) -&#45;&#45; %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>

推荐阅读