目录
日志框架使用
导入依赖(maven框架下只用引入以下依赖即可)
<!-- 引入logback-classic的依赖-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.11</version>
</dependency>
配置日志记录器
日志名称一定是logback.xml
Logger有三个属性:
- name属性:记录器的名称
- level属性(可选):记录器的级别,允许的级别从低到高,TRACE < DEBUG < INFO < WARN < ERROR
- additivity属性(可选):是否允许叠加打印日志, true或false
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 定义附加器 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date %msg%n</pattern>
</encoder>
</appender>
<!-- 根记录器 -->
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
<!-- controller记录器 -->
<logger name="controller" level="info" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
<!-- controller.TestController记录器 -->
<logger name="controller.TestController" level="error" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
</configuration>
在控制器中定义一个测试方法
@Controller
public class TestController {
// 获取日志记录器
private Logger logger=LoggerFactory.getLogger(TestController.class);
// private Logger logger=LoggerFactory.getLogger("controller3");//如果没有该日志记录器,则获取父类级别
@RequestMapping("/test")
@ResponseBody
public String test(){
// 获取记录日志、
logger.trace("这是trace级别的日志信息");
logger.debug("这是debug级别的日志信息");
logger.info("这是info级别的日志信息");
logger.warn("这是warn级别的日志信息");
logger.error("这是error级别的日志信息");
return "test";
}
}
以上在运行时,控制台里面会输出对应信息。
注:日志记录器会记录指定Level及以上级别的日志信息
将日志保存在文件中的操作
附加器(Appender)
不同的附加器会将日志
输出到不同的地方
,比如控制台附加器、文件附加器、网络附加器等等。
常用的附加器
- 控制台附加器: ch.qos.logback.core.ConsoleAppender
- 文件附加器: ch.qos.logback.core.FileAppender
- 滚动文件附加器: ch.qos.logback.core.rolling.RollingFileAppender
<!-- 文件附加器 -->
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>D:/ssm/myLog.log</file>
<encoder>
<pattern>%date %level %class %line %msg%n</pattern>
</encoder>
<append>true</append>
</appender>
但是,记录的日志将放在同一个文件中,接下来将针对这个问题进行修改。
滚动策略有两种:
1.
基于
时间
的滚动策略
ch.qos.logback.core.rolling.TimeBasedRollingPolicy
2.
基于
大小和时间
的滚动策略
ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy
<!-- 滚动文件附加器 -->
<appender name="ROLLINGFILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>E:/ssm1/log_current.log</file>
<encoder>
<pattern>%date %level %class %line %msg%n</pattern>
</encoder>
<!-- 基于时间-->
<!-- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
<!-- <fileNamePattern>E:/ssm1/log_%d{yyyy-MM-dd}.log</fileNamePattern>-->
<!-- <maxHistory>30</maxHistory>-->
<!-- </rollingPolicy>-->
<!-- 基于大小和时间-->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>D:/ssm/log_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxHistory>30</maxHistory>
<totalSizeCap>5GB</totalSizeCap>
<maxFileSize>1KB</maxFileSize>
</rollingPolicy>
</appender>