【SpringBoot】使用@Slf4j注解

mac2024-11-20  32

前言

  传统中,我们使用slf4j打印日志方式是:

// 先定义Logger对象 private static final Logger logger = LoggerFactory.getLogger(ObjectClass.class); // 然后在业务中使用 ...logger.info(); ...logger.error();

  这种方式每次使用都需要在相应的业务处理类定义。在以SpringBoot搭建的项目中,可以 使用lombok来作为日志控制的工具

使用@Slf4j

1.安装lombok插件(IDEA)

  在IDEA插件管理中,搜索lombok,安装lombok plugins插件

  

2.引入lombok依赖

  在pom.xml文件中加入lombok依赖

<!--lombok依赖--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>

3.使用

  在类方法中加入@Slf4j注解,然后可以直接在业务方法中使用log

package com.kingdom.vbdemo.common.config; import com.kingdom.vbdemo.common.entity.ReturnEntity; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; /** * <p>Package:com.kingdom.vbdemo.common.config</p> * <p>Title: GlobalDeafultExceptionHandler</p> * <p>Description: 全局的异常捕捉</p> * * @author Kingdom.Chen * @datetime 2018/10/23 14:42 */ @Slf4j @RestControllerAdvice public class GlobalDeafultExceptionHandler { /** * 异常捕捉 * @param e * @return */ @ExceptionHandler(Exception.class) public ReturnEntity exceptionHandler(Exception e) { log.error("系统异常: " + e.getMessage()); e.printStackTrace(); return ReturnEntity.fail(); } }

结合lombok-spring.xml配置文件使用

<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="10 seconds"> <contextName>logback</contextName> <!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符--> <property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" /> <!-- 定义日志存储的路径,不要配置相对路径 --> <property name="FILE_PATH" value="D:/Desktop/log/spring-log.%d{yyyy-MM-dd}.%i.log" /> <!-- 控制台输出日志 --> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <!-- 日志级别过滤INFO以下 --> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> <encoder> <!-- 按照上面配置的LOG_PATTERN来打印日志 --> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <!--每天生成一个日志文件,保存30天的日志文件。rollingFile用来切分文件的 --> <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${FILE_PATH}</fileNamePattern> <!-- keep 15 days' worth of history --> <maxHistory>30</maxHistory> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <!-- 日志文件的最大大小 --> <maxFileSize>2MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <!-- 超出删除老文件 --> <totalSizeCap>1GB</totalSizeCap> </rollingPolicy> <encoder> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <!-- project default level --> <logger name="net.sh.rgface.serive" level="ERROR" /> <!-- 日志输出级别 --> <root level="INFO"> <appender-ref ref="console" /> <appender-ref ref="rollingFile" /> </root> </configuration>

彩色控制台显示

<!-- 彩色日志 --> <!-- 彩色日志依赖的渲染类 --> <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /> <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /> <!-- 彩色日志格式 --> <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
最新回复(0)