SpringBoot点餐随笔-日志、测试、自定义异常
2017-09-30 本文已影响11人
8813d76fee36
日志级别
进入org.slf4j.event.Level
类,可以看到如下日志级别。
系统默认是INFO级别,INFO及以上级别的日志将会输出,低于INFO级别的(DEBUG、TRANCE)将不输出。
使用lombok简化开发
- 为IDEA安装lombok插件
Preferences - Plugins - Browse repositories - 搜索 Lombok Plugin - Install
- pom.xml 添加如下依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
-
使用lomobk的@Slf4j注解简化日志代码
在类上添加lombok的@Slf4j注解
@Slf4j注解
之后就可以直接 log.xxx来打印日志。
-
使用占位符打印变量
用{}
作为占位符
配置LogBack
-
在resource目录下新建logback-spring.xml
logback-spring.xml
application.yml配置logging.config注意
在SpringBoot 1.5.7.RELEASE版本中,必须要在application.yml(或application.xml中的logging.config写明日志配置文件的路径,否则项目无法启动)
- INFO、ERROR输出到不同文件
配置两个用于日志文件输出的appender,并分别引入过滤器
INFO日志输出INFO
ERROR日志输出 加入rootERROR
日志配置
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--控制台日志输出-->
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>
%d - %msg%n
</pattern>
</layout>
</appender>
<!--文件日志输出-->
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--配置过虑-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!--设置过虑级别-->
<level>ERROR</level>
<!--匹配上述级别时禁止-->
<onMatch>DENY</onMatch>
<!--不匹配上述级别时输出-->
<onMismatch>ACCEPT</onMismatch>
</filter>
<encoder>
<pattern>
%d - %msg%n
</pattern>
</encoder>
<!--滚动策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--路径-->
<fileNamePattern>
/Users/xiaotianxue/MoocRepo/logs/sell/info.%d.log
</fileNamePattern>
</rollingPolicy>
</appender>
<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--配置过滤器 只输出ERROR-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<encoder>
<pattern>
%d - %msg%n
</pattern>
</encoder>
<!--滚动策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--路径-->
<fileNamePattern>
/Users/xiaotianxue/MoocRepo/logs/sell/error.%d.log
</fileNamePattern>
</rollingPolicy>
</appender>
<root level="info">
<appender-ref ref="consoleLog" />
<appender-ref ref="fileInfoLog" />
<appender-ref ref="fileErrorLog" />
</root>
</configuration>
测试
在IDEA中,可以在要测试的类上右键-Go To-Test,生成测试类。SpringBoot测试类上需要添加@RunWith(SpringRunner.class)
和@SpringBootTest
注解。
- 测试时避免产脏数据(利用事务控制)
常用javax.presistance包下 的 @Transactional注解
可以在测试方法上@Transactional注解,在运行完测试后注解会清除该项数据。