美文网首页
SpringBoot2 - LogBack

SpringBoot2 - LogBack

作者: 朱穆朗玛 | 来源:发表于2018-06-22 15:36 被阅读0次

构建项目

  1. 访问地址:http://start.spring.io
  2. 添加Web依赖(SpringBoot内部集成了LogBack)

创建控制器

package com.gala.logback.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class IndexController {

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

    @RequestMapping(value = "/index")
    public String index() {
        logger.debug("记录debug日志");
        logger.info("记录index方法");
        logger.error("记录error日志");
        return "index";
    }
}

修改LogBack配置

LogBack读取配置文件的步骤

  1. 尝试classpath下查找文件logback-test.xml
  2. 如果文件不存在,尝试查找logback.xml
  3. 如果两个文件都不存在,LogBack用BasicConfiguration自动对自己进行最小化配置,不需要添加任何配置就可以输出到控制台日志信息。

创建logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
    <property name="LOG_HOME" value="./logs" />
    <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg  %n</pattern>
        </encoder>
    </appender>
    <!-- 按照每天生成日志文件 -->
    <appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_HOME}/runtime.log.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!--日志文件保留天数-->
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
        <!--日志文件最大的大小-->
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
    </appender>

    <!-- 日志输出级别 -->
    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </root>
</configuration>

启动项目,访问地址:http://127.0.0.1:8080/index

屏蔽记录日志

修改application.yml

logging:
 level:
  com.gala.logback.controller: 'off'

新增TestController.java

package com.gala.logback;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

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

    @RequestMapping(value = "/test")
    public String test() {
        logger.debug("记录debug日志");
        logger.info("记录index方法");
        logger.error("记录error日志");
        return "test";
    }
}

重启项目
访问:http://127.0.0.1:8080/index
访问:http://127.0.0.1:8080/test

相关文章

网友评论

      本文标题:SpringBoot2 - LogBack

      本文链接:https://www.haomeiwen.com/subject/imykyftx.html