SSM.2_02|logback日志配置
Posted 接引之书
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSM.2_02|logback日志配置相关的知识,希望对你有一定的参考价值。
Jdk8
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<String, Object>(); //用来存放方法的返回值
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;
}
}
<?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>
上下滑动,可查看更多▲
目录大纲 Directory outline
以上是关于SSM.2_02|logback日志配置的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Java 代码配置 Logback 以设置日志级别?