Spring Boot进行整合logback日志

1.在pom文件中添加依赖

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

2.使用test进行测试是否可以正常使用
在这里插入图片描述
在test的java相应的包中创建一个test类

package com.imooc;

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

/**
 * Created by SeuLab on 2018/9/20.
 */

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

    private Logger logger= LoggerFactory.getLogger(LoggerTest.class);
    /*第一种方式  通过Logger进行一个日志的管理*/
    @Test
    public void loggerTest(){
        //以下是按照日志级别进行排序的   从大到小
        logger.error("ERROE");
        logger.warn("WARN");
        logger.info("INFO");
        logger.debug("DEBUG");
        logger.trace("TRACE");
    }

    /*第二种方式  通过和上面的注释@Slf4j进行一个配合进行一个日志的管理
    * 注意   当打印log变量提示没有的时候需要进行一个插件的下载安装然后看重启Idea
    * 在plugs中查询Lombok进行下载*/
    @Test
    public void logTest(){
        log.error("ERROR");
        log.warn("WARN");
        log.info("INFO");
        log.debug("DEBUG");
        log.trace("TRACE");
    }
}

注意:如果显示没有log变量的时候就在plugs中下载lombom
3.日志的配置
配置有两种方式:
1.在application.yml中进行配置
2.新建一个xml文件,名字写成logback-spring.xml(默认扫描的时候名字就是这个,如果修改为其它的名字,需要在application中进行配置),这种方式可以配置的配置项比较全面

1.application.yml
logging:
  pattern:
    console: "%d-%msg%n"
    level: debug
  path: log/sell.log

2.logback-spring.xml
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <!--定义输出器appender  指定的类是控制台的-->
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <!--定义输出的布局 layout-->
        <layout class="ch.qos.logback.classic.PatternLayout">
            <!--定义输出的模板   %d指的是当前的时间  %msg 指的是输出的信息  %n 指的是换行-->
            <pattern>
                %d-%msg%n
            </pattern>
        </layout>
    </appender>
    <!--appender 引用的是滚动文件模板-->
    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--filter 过滤拦截 引用的类是级别过滤器   日志输出的级别是 ERROR WARN INFO DEBUG TRACE  如果不拦截的话当等级为ERROR的时候她会接受自己等级下面的四种等级的信息-->
        <!--onMatch  指的是命中  onMismatch  指的是不命中-->
        <!--ACCEPT通过  DENY  不通过-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <!--输出的模板-->
        <encoder>
            <pattern>
                %d-%msg%n
            </pattern>
        </encoder>
        <!--滚动策略 rollingPolicy   是每天都会新建-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--文件的路径  指的是根目录下的log文件夹下-->
            <fileNamePattern>log/sell.info.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>
                %d-%msg%n
            </pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>log/sell.error.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>


    <root level="info">
        <appender-ref ref="consoleLog"/>
        <appender-ref ref="fileInfoLog"/>
        <appender-ref ref="fileErrorLog"/>
    </root>
</configuration>

猜你喜欢

转载自blog.csdn.net/zhang_cl_cn/article/details/82803963