美文网首页
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