美文网首页开发随笔
SpringBoot点餐随笔-日志、测试、自定义异常

SpringBoot点餐随笔-日志、测试、自定义异常

作者: 8813d76fee36 | 来源:发表于2017-09-30 16:09 被阅读11次

日志级别

进入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

注意
在SpringBoot 1.5.7.RELEASE版本中,必须要在application.yml(或application.xml中的logging.config写明日志配置文件的路径,否则项目无法启动)

application.yml配置logging.config
  • INFO、ERROR输出到不同文件
    配置两个用于日志文件输出的appender,并分别引入过滤器

INFO

INFO日志输出

ERROR

ERROR日志输出 加入root

日志配置

<?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注解,在运行完测试后注解会清除该项数据。
利用事务消除测试脏数据

相关文章

网友评论

    本文标题:SpringBoot点餐随笔-日志、测试、自定义异常

    本文链接:https://www.haomeiwen.com/subject/grdgextx.html