LogBack的主要模块:
logback-access:与servlet集成,提供通过http访问日志的功能,第三方软件可以通过这个模块获取日志信息。
logback-classic:实现了Api,可以很轻松更换其他日志系统.
logback-core:为上述模块提供基础服务。
Lokback的主要标签:
logger 定义日志对象,级别
appender:用于指定日志输入的目的地。文件或控制台等
layout:格式化日志输出信息。
Mavn+SSM中实战:
程序在运行时会按照一定的顺序加载Logback文件。
1.创建logback文件
2.编写LogBack文件,系统会运行时会自动加载logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- scan =true 配置文件被改变,会重新加载 默认为true scanPeriod:定时扫描是否修改,时间间隔 -->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 定义参数常量 -->
<!-- 日志级别 track<debug<info<warn<error -->
<!-- logger.trace(msg) -->
<property name="log.level" value="debug"/>
<property name="log.maxHistory" value="30"/>
<!-- tomcat 的根目录 -->
<property name="log.filePath" value="${catalina.base}/sm/logs/webapps"/>
<!-- 时间+线程 +级别+msg+换行 -->
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{55} -
%msg%n"/>
<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder 类似layout ,负责转成strIng,也负责放在文件中 -->
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- .RollingFileAppender文件随着Size或者按照时间推移生成新的文件 -->
<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}.%i.log.zip</FileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>1024MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- 文件最大保存数量 -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<!-- 过滤器 ;过滤到不属于debugAppender的日志信息-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<OnMissMatch>DENY</OnMissMatch>
</filter>
</appender>
<!-- logger 在level之上,如果没有指定level ,默认只输出root 指定的.一个类只指定一个log-->
<logger name="com.lv" level="DEBUG" additivity="false">
<appender-ref ref="debugAppender" />
</logger>
<root level="INFO">
<appender-ref ref="consoleAppender" />
</root>
</configuration>
3.controller中使用Logger.
@Controller
@RequestMapping("/supperAdmin")
public class AreaController {
@Autowired
private AreaService areaService;
Logger logger=(Logger) LoggerFactory.getLogger(AreaController.class);
@RequestMapping(value="/listarea",method=RequestMethod.GET)
@ResponseBody
public Map<String,Object>listAdmin(){
logger.debug("----Start----");
long currentTime1=System.currentTimeMillis();
Map<String,Object> map=new HashMap<String,Object>();
List<Area>list=new ArrayList();
list=areaService.getAreaList();
map.put("row",list);
map.put("total", list.size());
long currentTime2=System.currentTimeMillis();
logger.debug("----运行时间----" +(currentTime1-currentTime2));
logger.debug("---end---");
return map;
}
}
4.运行并执行完controller,查看文件夹
复制我画线部分的地址,搜索那个地址,找对应的debug.log