SSM.2_02|logback日志配置

Posted 接引之书

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSM.2_02|logback日志配置相关的知识,希望对你有一定的参考价值。


接引之书JieYinzhishu 第620页



SSM.2_02|logback日志配置

Maven3.6
Tomcat8.5
Mysql8.0

Jdk8

SSM.2_02|logback日志配置

SSM.2_02|logback日志配置
    package com.imooc.o2o.web.superadmin;

    import com.imooc.o2o.entity.Area;
    import com.imooc.o2o.service.AreaService;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;

    @Controller
    @RequestMapping("/superadmin")
    public class AreController {


        Logger logger = LoggerFactory.getLogger(AreController.class);

        @Autowired
        private AreaService areaService;

    //    @RequestMapping(value = "/listArea",method = RequestMethod.GET)
        @ResponseBody
        @GetMapping(value = "/listArea")
        private Map<String,Object> listArea(){

            logger.info("====start===");
            long startTime = System.currentTimeMillis();     //获取当前时间毫秒数
            Map<String,Object> modelMap = new HashMap<StringObject>();  //用来存放方法的返回值
            List<Area> list = new ArrayList<Area>();  //用来获取service层返回的区域列表
            try {
                list = areaService.getAreaList();
                modelMap.put("rows",list);
                modelMap.put("total",list.size());
            } catch (Exception e) {
                e.printStackTrace();
                modelMap.put("success",false);
                modelMap.put("errMsg",e.toString());
            }

            logger.error("test error!");
            long endTime = System.currentTimeMillis();
            logger.debug("costTime:[{}]ms",endTime-startTime);    //[{}] :这个是占位符的意思,后面两个时间相减得出来值 会传到这括号里面
            logger.info("====end===");
            return modelMap;
        }
    }



 


SSM.2_02|logback日志配置

SSM.2_02|logback日志配置

    <?xml version="1.0" encoding="UTF-8" ?>
    <configuration scan="true" scanPeriod="60 seconds" debug="false">
        <!--
        scanPeriod:设置监测配置文件是否有修改时间的时间间隔
        seconds:秒
        -->



        <!--定义参数常量-->
        <!--TRACE < DEBUG < INFO < WARN <ERROR-->
        <property name="log.level" value="debug"/>
        <property name="log.maxHistory" value="30"/>     <!--文件最大保存历史数量,30-->
        <property name="log.filePath" value="${catalina.base}/logs/webapps"/> <!--标识这个日志储存的根路径-->
        <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS}[%thread]%-5level%logger{50}-%msg%n"/>  <!--日志展现的格式-->
        <!--
        %d{yyyy-MM-dd HH:mm:ss.SSS} :时间格式
        [%thead] :是哪个线程执行
        %-5level :哪个级别的日志
        %logger{50} :哪个package下面的哪个类里面的信息
        %msg :信息
        -->



        <!--控制台输出-->
        <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>${log.pattern}</pattern>
            </encoder>
        </appender>



        <!--DEBUG-->
        <appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!--文件路径-->
            <file>${log.filePath}/debug.log</file>
            <!--滚动策略:按天或者按月,还是按年...-->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!--文件名称-->
                <fileNamePattern>${log.filePath}/debug/debug.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
                <!--文件最大保存历史数量-->
                <maxHistory>${log.maxHistory}</maxHistory>
            </rollingPolicy>
            <encoder>
                <pattern>${log.pattern}</pattern>
            </encoder>
            <!--过滤器-->
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>DEBUG</level>
                <onMatch>ACCEPT</onMatch>     <!--如果是DEBUG信息就保留-->
                <onMismatch>DENY</onMismatch> <!--如果不是DEBUG信息就过滤掉-->
            </filter>
        </appender>



        <!--INFO-->
        <appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!--文件路径-->
            <file>${log.filePath}/info.log</file>
            <!--滚动策略:按天或者按月,还是按年...-->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!--文件名称-->
                <fileNamePattern>${log.filePath}/info/info.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
                <!--文件最大保存历史数量-->
                <maxHistory>${log.maxHistory}</maxHistory>
            </rollingPolicy>
            <encoder>
                <pattern>${log.pattern}</pattern>
            </encoder>
            <!--过滤器-->
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>INFO</level>
                <onMatch>ACCEPT</onMatch>     <!--如果是INFO信息就保留-->
                <onMismatch>DENY</onMismatch> <!--如果不是INFO信息就过滤掉-->
            </filter>
        </appender>



        <!--ERROR-->
        <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!--文件路径-->
            <file>${log.filePath}/error.log</file>
            <!--滚动策略:按天或者按月,还是按年...-->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!--文件名称-->
                <fileNamePattern>${log.filePath}/error/error.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
                <!--文件最大保存历史数量-->
                <maxHistory>${log.maxHistory}</maxHistory>
            </rollingPolicy>
            <encoder>
                <pattern>${log.pattern}</pattern>
            </encoder>
            <!--过滤器-->
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
        </appender>



        <logger name="com.imooc.o2o" level="${log.level}" additivity="true"> <!--additivity="true"这个的意思是:也继承下面root里面的信息-->
            <appender-ref ref="debugAppender"/>
            <appender-ref ref="infoAppender"/>
            <appender-ref ref="errorAppender"/>
        </logger>
        <!--如果上面的logger没输出,就执行下面的root-->
        <root level="info">
            <appender-ref ref="consoleAppender"/>
        </root>


    </configuration>




SSM.2_02|logback日志配置

SSM.2_02|logback日志配置

SSM.2_02|logback日志配置


上下滑动,可查看更多▲



目录大纲 Directory outline

以上是关于SSM.2_02|logback日志配置的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 4-日志配置

如何使用 Java 代码配置 Logback 以设置日志级别?

项目一众筹网01_02环境搭建_日志系统搭建日志打印级别debuginfoerror

日志框架之Logback的使用与详细配置

Logback 配置文件这样优化,TPS提高 10 倍

Spring Boot - Logback配置日志要考虑哪些因素