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

日志级别

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

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

几种常用的使用方法

第一种 :

private Logger logger = LoggerFactory.getLogger(WeixindiancanApplicationTests.class);

logger.info();
...

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

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

第二种: SpringBoot整合 Lombok

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

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

log.debug("dubug..."); 
log.info("info...");
log.error("error...");

格式:

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

log.info("name="+name+"  age="+age);
log.info("name= {},age: {}",name,age);

application.yml的配置

如图是日志相关的配置

  • path: E: 

    将日志输出到文件 , 默认会在这个路径下创建spring.log

  • file: E:\mylog.log

    将日志输出到指定目录的指定文件, 可以取代上面的path

  • level:
    • 可以设置上面的五种日志级别
    • 可以指定某个类的日志级别
  • console: 格式,网上很多不同的输出格式

logging:
  pattern:
  level:
    com.changwu.wen.WeicanApplication: debug

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>

版权声明:本文为ZhuChangwu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/ZhuChangwu/p/11266679.html