LogBack日志的配置和使用

2019-05-12  本文已影响0人  最美的风景

在SpringBoot项目中,只需要在 logback-xxx.xml配置文件中进行相关的配置即可。如果是普通的maven项目, 则需要加入jar包,要加入slf4j和logback的jar包,slf4j需要的jar包为slf4j-api,logback需要3个jar包(logback-access、logback-classic、logback-core)。

slf4j下载地址:https://www.slf4j.org/download.html

logback下载地址:https://logback.qos.ch/download.html

下载后解压,选择所需要的4个jar包即可。

目录结构如下:

目录结构.png

下面我们来看具体的配置

关于配置的解释已经在注释中写了

<?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表示换行-->
                %d - %msg%n
            </pattern>
        </layout>
    </appender>

    <!--配置info信息输出到一个文件-->
    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--根据级别过滤掉匹配的日志,不输出error级别的日志-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <!--匹配上ERROR级别的日志信息,则不会输出到该文件中-->
            <onMatch>DENY</onMatch>
            <!--匹配不上ERROR级别的日志信息,则输出到该文件中-->
            <onMismatch>ACCEPT</onMismatch>
            <!--这样过滤以后,该文件中只会输出info级别的日志信息-->
        </filter>
        <!--日志输出格式,同上-->
        <encoder>
            <pattern>
                %d - %msg%n
            </pattern>
        </encoder>

        <!--滚动策略,按时间每天生成一个日志文件-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--文件路径-->
            <fileNamePattern>F:/log/springboot/info.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <!--配置error信息输出到一个文件-->
    <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>
                %d - %msg%n
            </pattern>
        </encoder>

        <!--滚动策略,按时间每天生成一个日志文件-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--文件路径-->
            <fileNamePattern>F:/log/springboot/error.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>

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

在程序用引用Logback,输出操作日志

@Controller
public class TestController {

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

    @RequestMapping("/home")
    @ResponseBody
    public String home(){
        logger.info("logback 访问hello");
        logger.error("logback 访问hello");
        return "Hello World";
    }
}

控制台日志输出信息

控制台信息.png

日志文件信息

日志文件.png
上一篇下一篇

猜你喜欢

热点阅读