15、SpringBoot之日志管理

  • SpringBoot默认使用Logback组件作为日志管理。LogBack是由log4j创始人设计的一个开源日志组件
  • 在SpringBoot项目中我们不需要额外的添加Logback的依赖,因为spring-boot-starter或者spring-boot-starter-web中已经包含了Logback的依赖
  1. LogBack读取配置文件的步骤
    1. 在classpath下查找文件logback-test.xml
    2. 如果文件不存在,则查找logback.xml
    3. 如果两个文件都不存在,LogBack用BasicConfiguration自动对自己进行最小化配置,这样即实现了上面我们不需要添加任何配置就可以输出到控制台日志信息
  2. 添加LogBack配置文件
  3. 配置LogBack

编写配置文件 logback.xml(存放于classpath 目录下)

<?xml version="1.0" encoding="UTF-8" ?>
    <configuration>
        <!-- 定义日志文件的存储地址 勿在 Logback 的配置中使用相对路径 -->
        <property name="LOG_HOME" value="${catalina.base}/logs"/>
        <!-- 控制台输出 -->
        <appender name="CONSOLE-LOG" class="ch.qos.logback.core.ConsoleAppender">
            <!-- 日志输出编码 -->
            <layout class="ch.qos.logback.classic.PatternLayout">
                <!-- 格式化输出 -->
                <pattern>[%d{yyyy-MM-dd' 'HH:mm:ss.sss}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
            </layout>
        </appender>
        <!--获取比info级别高(包括info级别)但除error级别的日志-->
        <appender name="INFO-LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>[%d{yyyy-MM-dd' 'HH:mm:ss.sss}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
            </layout>
            <!--滚动策略-->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!--路径-->
                <fileNamePattern>${LOG_HOME}/%d.log</fileNamePattern>
                <!-- 保留日志的天数 -->
                <maxHistory>30</maxHistory>
            </rollingPolicy>
        </appender>
        <!-- 日志输出级别 -->
        <root level="info">
            <appender-ref ref="CONSOLE-LOG" />
            <appender-ref ref="INFO-LOG" />
        </root>
    </configuration>

编写controller

@RestController
@RequestMapping("/logback")
public class HelloController {


    private final static Logger logger = LoggerFactory.getLogger(HelloController.class);


    @RequestMapping("/showInfo")
    public String showInfo(){
        logger.info("记录日志");
        return "Hello logback";
    }
}

在配置文件中屏蔽指定包的日志记录

#屏蔽掉com.example下的所有日志
logging.level.com.example=off

原文地址:https://www.cnblogs.com/Ryuichi/p/13460644.html