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>