SpringBoot日志输出(Logback)

SpringBoot之Logback 日志

- 创建一个基本的SpringBoot项目

这里写图片描述
编写一个测试方法:LoggerTest

@RunWith(SpringRunner.class)
@SpringBootTest
public class LoggerTest {

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

    @Test
    public  void  test() {

        logger.debug("debug...");
        logger.info("info...");
        logger.warn("warn...");
        logger.error("error...");

    }
}

运行查看结果:
这里写图片描述

默认日志等级为info所以debug日志没有打印

- 使用{}来打印日志

logger.info("name = {} , password = {}",name,password);

- 使用注解打印日志
首先加入依赖

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

然后在加上@Slf4j 注解 ,在方法中使用log对象打印(idea中有时候可用需要添加插件lombok)

@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class LoggerTest {

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

    @Test
    public  void  test() {

        String name = "imooc";
        String password = "123456";
        log.info("name = {} , password = {}",name,password);
        log.warn("warn...");
        log.error("error...");
        //Logger.debug("debug...");
        //logger.info("name = {} , password = {}",name,password);
        //logger.warn("warn...");
        //logger.error("error...");

    }
}

Logback的配置

日志配置可以分为两种:

  1. application.yml(配置简单,所做的事情也简单,不适用生产)
logging:
  pattern:
    console: "%d - %msg%n"         #输出日志的格式
  level:
    com.zhihua.sell.LoggerTest: debug          #指定类的日志级别
  #path: D:\log                                #指定输出到文件夹
  file: D:\log\sell.log                        #输出到指定文件
  1. logback-spring.xml (主流配置)
**<?xml version="1.0" encoding="utf-8" ?>

<configuration>
    <!-- 负责写日志的组件,它有两个必要属性name和class。name指定appender名称,class指定appender的全限定名-->
    <!-- ConsoleAppender 把日志输出到控制台 -->
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 展示的格式 -->
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                %d - %msg%n
            </pattern>
        </layout>
    </appender>


    <!-- info 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件  此处每天输出日志 -->
    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>DENY</onMatch>  <!-- 此处如果匹配erroe 就禁止掉,没有就启用该规则 -->
            <onMismatch>ACCEPT</onMismatch>
        </filter> 

        <!-- encoder:对日志进行格式化。-->
        <encoder>
            <pattern>
                %msg%n
            </pattern>
        </encoder>
        <!--滚动策略 此处按照时间滚动-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--路径-->
            <fileNamePattern>D:\log\info.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>


    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 过滤 -->
        <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>D:\log\error.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <!-- root根目录,引用 consoleLog 日志配置-->
    <root level = "info">
        <appender-ref ref="consoleLog"/>
        <appender-ref ref="fileInfoLog"/>
        <appender-ref ref="fileErrorLog"/>
    </root>

</configuration>**

猜你喜欢

转载自blog.csdn.net/chen1092248901/article/details/81096193