SpringBoot日志相关

SpringBoot使用的是SLF4j当门面,Logback当实现完成

日志级别

数字越大,级别越高,框架只会输出大于等于当前日志级别的信息

  • ERROR 40
  • WARN 30
  • INFO 20
  • DEBUG 10
  • TRACE 0

几种常用的使用方法

第一种 :

默认的级别上info,按上面的排名只会输出 info,warn,error级别以上的日志

在获取logger对象时,一般都是将本类的class传递进去,在默认的格式在日志输出时会把每条日志信息所在的class名输出出来

第二种: SpringBoot整合 Lombok

Lombok不仅仅提供了强大的@Data,和getset注解,同时支持日志相关

@Slf4j添加在类上,我们就不用再手动的获取Logger对象了,而是直接使用log

格式:

在输出日志的时候可以向下面这样,两种写法

logback-sring.xml的配置

通过这个配置文件,可以更方便的控制日志的输出,比如将 级别为info的输出到A文件, 级别为error的输出到B文件

默认放置在Resources目录下

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <!-- 配置项  配置控制台的输出-->
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <!--展示格式-->
        <layout class="ch.qos.logback.classic.PatternLayout">
             <pattern>
                 %d - %msg%n
             </pattern>
        </layout>
    </appender>

    <!-- 配置项  配置文件的输出  -->
    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 只保留 INFO -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <!-- 当匹配到error时, 禁止输出 -->
            <onMatch>DENY</onMatch>
            <onMismatch>ACCEPT</onMismatch>
        </filter>

        <encoder> <!--展示格式-->
            <pattern>
                %msg%n
            </pattern>
        </encoder>
        <!--滚动策略  按照时间,每天产生一个-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--路径-->
            <fileNamePattern>E:info.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>


    <!-- 创建第三个配置项,将error和info分别输出到不同的文件中 -->
    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 只保留ERROR -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>

        <encoder>
            <!--展示格式-->
            <pattern>
                %msg%n
            </pattern>
        </encoder>
        <!--滚动策略  按照时间,每天产生一个-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--路径-->
            <fileNamePattern>E:error.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>


    <!-- 将上面的配置项,使用到root目录上 -->
    <root level="info">
        <appender-ref ref="consoleLog"/>
        <appender-ref ref="fileInfoLog"/>
        <appender-ref ref="fileErrorLog"/>
    </root>

</configuration>

此文来源于: https://www.cnblogs.com/ZhuChangwu/p/11266679.html#2541471269

原文地址:https://www.cnblogs.com/JonaLin/p/11307520.html