走进Java接口测试之日志框架Logback

您所在的位置:网站首页 c单元测试框架比较 走进Java接口测试之日志框架Logback

走进Java接口测试之日志框架Logback

2023-04-07 00:43| 来源: 网络整理| 查看: 265

走进Java接口测试之日志框架Logback_接口测试

引言

对于一个成熟的接口测试框架,日志管理这个是必不可少的。在开发和调试阶段,日志可以帮助我们更快的定位问题;而在测试的运维过程中,日志系统又可以帮助我们记录大部分的异常信息,通常很多测试框架会通过收集日志信息来对接口测试状态进行实时监控预警。

前言

Spring Boot 在所有内部日志中使用 CommonsLogging,但是默认配置也提供了对常用日志的支持,如: Java.Util.Logging, Log4J, Log4J2和 Logback。每种 Logger 都可以通过配置使用控制台或者文件输出日志内容。

LogBack、Slf4j和Log4j之间的关系

Slf4j 是 The Simple Logging Facade for Java的简称,是一个简单日志门面抽象框架,它本身只提供了日志 Facade API和一个简单的日志类实现,一般常配合Log4j,LogBack,java.util.logging使用。Slf4j作为应用层的Log接入时,程序可以根据实际应用场景动态调整底层的日志实现框架(Log4j/LogBack/JdkLog等)。

LogBack和Log4j都是开源日记工具库,LogBack 是 Log4j 的改良版本,比 Log4j 拥有更多的特性,同时也带来很大性能提升,同时天然支持SLF4J。

LogBack 官方建议配合 Slf4j 使用,这样可以灵活地替换底层日志框架。

TIPS:为了优化log4j,以及更大性能的提升,Apache基金会已经着手开发了log4j 2.0, 其中也借鉴和吸收了logback的一些先进特性。

默认日志Logback

默认情况下,Spring Boot 会用 Logback 来记录日志,并用 INFO 级别输出到控制台。在运行应用程序和其他例子时,你应该已经看到很多INFO级别的日志了。 走进Java接口测试之日志框架Logback_Java_02从上图可以看到,日志输出内容元素具体如下:

时间日期:精确到毫秒日志级别:ERROR, WARN, INFO, DEBUG or TRACE进程 ID分隔符:--- 标识实际日志的开始线程名:方括号括起来(可能会截断控制台输出)Logger名:通常使用源代码的类名日志内容配置详解添加日志依赖

假如maven依赖中添加了 spring-boot-starter-logging:

org.springframework.boot spring-boot-starter-logging

那么,我们的Spring Boot应用将自动使用 logback 作为应用日志框架,Spring Boot 启动的时候,由 org.springframework.boot.logging.Logging-Application-Listener根据情况初始化并使用。

但是呢,实际开发中我们不需要直接添加该依赖,你会发现 spring-boot-starter其中包含了 spring-boot-starter-logging,该依赖内容就是 Spring Boot 默认的日志框架 logback 走进Java接口测试之日志框架Logback_接口测试_03

配置文件

Spring Boot 官方推荐优先使用带有 -spring的文件名作为你的日志配置(如使用 logback-spring.xml,而不是 logback.xml),命名为 logback-spring.xml的日志配置文件,spring boot 可以为它添加一些 spring boot 特有的配置项(下面会提到)。并且放在 src/main/resources 下面即可。

配置文件 logback-spring.xml

${LOG_MSG} ${LOG_HOME}/all_${LOG_PREFIX}.log ${LOG_DIR}/all_${LOG_PREFIX}%i.log ${MAX_HISTORY} ${MAX_FILE_SIZE} ${LOG_MSG} ERROR DENY ACCEPT ${LOG_HOME}/err_${LOG_PREFIX}.log ${LOG_DIR}/err_${LOG_PREFIX}%i.log ${MAX_HISTORY} ${MAX_FILE_SIZE} ${LOG_MSG}

配置文件 application.yml

server: port: 8888 # 端口号 logging: path: ./logs/zuozewei level: root: info #日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出

日志会每天新建一个文件夹,日文文件配置的每 50MB,一个文本文件,超过新写入一个

文件夹:20181228 文件夹内容:all_spring-boot-logback0.log 文件夹内容:all_spring-boot-logback1.log 文件夹内容:all_spring-boot-logback2.log 文件夹内容:err_spring-boot-logback0.log多环境日志输出

根据不同环境(prod:生产环境,test:测试环境,dev:开发环境)来定义不同的日志输出,在 logback-spring.xml 中使用 springProfile 节点来定义,方法如下:

文件名称不是 logback.xml,想使用 spring 扩展 profile 支持,要以 logback-spring.xml 命名

可以启动服务的时候指定 profile (如不指定使用默认),如指定 prod 的方式为:

java -jar xxx.jar –spring.profiles.active=prod单元测试

此处我选择使用 lombok效率插件,所以只需要 @Slf4j注解即可简化 privateLoggerlogger=LoggerFactory.getLogger(this.getClass())的写法

RunWith(SpringRunner.class) @SpringBootTest @Slf4j public class LogbackdemoApplicationTests { @Test public void contextLoads() { log.info("输出info"); log.debug("输出debug"); log.error("输出error"); } }

生成的日志:

- | [] | [20181228 22:53:20.756] | [INFO] | [192.168.1.18] | [main] | [c.z.l.LogbackdemoApplicationTests] | --> Starting LogbackdemoApplicationTests on 192.168.1.18 with PID 82507 (started by apple in /Users/apple/Downloads/Springboot-logback-demo)| - | [] | [20181228 22:53:20.762] | [INFO] | [192.168.1.18] | [main] | [c.z.l.LogbackdemoApplicationTests] | --> No active profile set, falling back to default profiles: default| - | [] | [20181228 22:53:21.590] | [INFO] | [192.168.1.18] | [main] | [c.z.l.LogbackdemoApplicationTests] | --> Started LogbackdemoApplicationTests in 1.69 seconds (JVM running for 3.525)| - | [] | [20181228 22:53:21.955] | [INFO] | [192.168.1.18] | [main] | [c.z.l.LogbackdemoApplicationTests] | --> 输出info| - | [] | [20181228 22:53:21.955] | [ERROR] | [192.168.1.18] | [main] | [c.z.l.LogbackdemoApplicationTests] | --> 输出error|工程目录

走进Java接口测试之日志框架Logback_Java_04

总结

到此为止终于介绍完 Logback日志框架了,平时使用的时候推荐用自定义 logback-spring.xml来配置,代码中使用日志也很简单,类里面添加 privateLoggerlogger=LoggerFactory.getLogger(this.getClass()); 即可,如果使用 lombok效率插件需要 @Slf4j注解。

本文代码:

https://github.com/7DGroup/Java-API-Test-Examples



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3