博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

SpringBoot - 14日志管理

Posted on 2021-01-03 20:35  Kingdomer  阅读(87)  评论(0编辑  收藏  举报

SpringBoot - 14日志管理

SpringBoot 默认使用Logback组件作为日志管理。Logback是由 log4j创始人设计的一个开源日志组件。

在SpringBoot项目中不需要额外添加Logback依赖,在spring-boot-starter中已经包含了Logback的依赖。

(1)Logback读取配置文件

  • 在classpath下查找文件 logback-test.xml
  • 如果文件不存在,则查找 logback.xml
  • 如果两个文件都不存在,Logback用BasicConfiguration自动对自己进行最小化配置。实现了不需要添加配置就可以输出到控制台日志信息。

(2)添加Logback配置文件

(2.1)编写logback-test.xml

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <!-- 定义日志文件的存储地址,不要使用相对路径 -->
    <property name="LOG_HOME" value="e://app//logs//" />
    <!-- 控制台输出 -->
    <appender name="Stdout" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 日志输出编码 -->
        <layout class="ch.qos.logback.classic.PatternLayout">
            <!--格式化: 日期  线程名 日志级别 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n</pattern>
        </layout>
    </appender>

     <!--按照每天生成日志文件-->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/testLogging.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <!-- 日志文件输出的文件名 -->
            <fileNamePattern>${LOG_HOME}/testLogging.%i.log.zip</fileNamePattern>
            <minIndex>1</minIndex>
            <maxIndex>3</maxIndex>
        </rollingPolicy>
        <!-- 日志文件最大容量-->
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <maxFileSize>10MB</maxFileSize>
        </triggeringPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n</pattern>
        </encoder>
    </appender>

    <!--可以将日志异步到数据库-->

    <!-- 日志输出级别 -->
    <root level="INFO">
        <appender-ref ref="FILE" />
        <appender-ref ref="Stdout"/>
    </root>
</configuration>

(2.2)编写Controller

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

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

    @RequestMapping("/showInfo")
    public String showInfo(){

        logger.info("showInfo()记录日志");
        System.out.println("console......");
        return "hello logback";
    }

}

 

控制台

2021-01-03 20:28:09.680 [http-nio-8080-exec-1] INFO  c.b.l.controller.UserController - showInfo()记录日志
console......

 

日志文件: e:/app/logs/testLogging.log

2021-01-03 20:21:02.413 [http-nio-8080-exec-1] INFO  c.b.l.controller.UserController - showInfo()记录日志

(2.3)修改application.yml  屏蔽指定包中的日志输出

logging:
  level:
    com:
      bearpx: off