使用karate-core 1.2.0依赖时如何生成指定.log日志文件
Karate-core 1.2.0 生成worker线程独立日志的配置方法
karate-apache 依赖能自动在target目录生成ForkJoinPool-1-worker-1.log这类并行worker独立日志,本质是它自带了HTTP客户端关联的logback appender默认配置,纯karate-core没有内置这部分配置,手动补全日志配置即可实现完全一致的效果,操作如下:
- 在项目测试资源目录
src/test/resources下新增或修改logback-test.xml文件,添加按线程拆分日志的输出规则,配置完成后每个ForkJoinPool worker线程都会在target目录生成对应名称的独立日志文件,参考配置:
<configuration> <!-- 基于线程名拆分日志,每个worker线程输出独立日志文件 --> <appender name="WORKER-SIFT" class="ch.qos.logback.classic.sift.SiftingAppender"> <discriminator> <key>threadName</key> <defaultValue>main</defaultValue> <getThreadName>true</getThreadName> </discriminator> <sift> <appender name="WORKER-FILE-${threadName}" class="ch.qos.logback.core.FileAppender"> <file>target/${threadName}.log</file> <append>true</append> <encoder> <pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> </sift> </appender> <!-- 绑定Karate核心日志输出到拆分日志器 --> <logger name="com.intuit.karate" level="DEBUG" additivity="false"> <appender-ref ref="WORKER-SIFT" /> </logger> </configuration>
- 检查
karate-core的依赖配置,不要排除logback-classic的传递依赖。1.2.0版本的karate-core已经内置了logback依赖,不需要额外引入日志实现包,如果之前为了解决日志冲突手动排除过logback相关包,删掉对应排除规则即可。 - 配置完成后执行并行测试,target目录下就会自动生成对应命名规则的worker日志文件。
小提示:如果不需要按线程拆分独立日志,直接去掉SiftingAppender配置,把日志输出路径写死为
target/karate-test.log,所有worker的日志会统一输出到单个文件中,排查全链路问题更方便。
内容的提问来源于stack exchange,提问作者Sushma Indrani
相关产品推荐
相关产品推荐

